Bonjour à tous,

Dans mon cursus d'admin réseaux, j'ai un projet de VB à faire. Ayant codé depuis des années en PHP (en revanche, gros newbie en VB ^^), je comprends la plupart des tuto que je trouve mais je perds beaucoup de temps dans la syntaxe des controles, occurences, méthodes, etc etc ...

Je tourne en rond depuis deux jours sur un problème de bouton dynamique alors là je craque ... j'ai décidé de m'inscrire sur ce forum et de demander de l'aide !

Voici en gros mon problème:
J'ai créé une ListView qui me retourne des champs de ma base MySQL.
Un des champs me retourne une valeur "NOK" ou "OK" (ça parle match de hockey ... Si les compositions de joueurs pour le match sélectionné ont été saisies alors le champ prend la valeur "OK" sinon si les compos ne sont pas saisies il prend la valeur "NOK"

Je fais un test à chaque fois que je clique sur un autre match (ItemSelectionChanged) je veux que:
  • si "NOK": afficher un bouton "saisir les compositions"
  • si "OK": afficher un bouton "valider le live"


J'ai créé un label qui m'affiche la valeur du champ afin de tester si le ItemSelectionChanged était opérationnel, c'est le cas.

En revanche, ça merdouille pour le bouton !
  • 1ere selection dans le listview: le bouton se créé
  • passages suivants dans le listview: aucune modification du bouton


J'ai essayé une deuxième solution, en vain:
créer deux boutons, un bouton compos et un bouton validlive, qui quand on est dans le cas "NOK" passe compos.visible=true et validlive.visible=false et dans le cas "OK" l'inverse, mais aucune modification n'a lieu sur les boutons !!! Je craque.

Comment faire pour gérer ces foutus boutons dynamiques ?!
Merci beaucoup pour votre aide. Place au code source maintenant

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Private Sub LViewGameOK_ItemSelectionChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.ListViewItemSelectionChangedEventArgs) Handles LViewGameOK.ItemSelectionChanged
 
        Dim N As Integer
        ' N = numéro d'index de la ligne du listview
        N = e.ItemIndex.ToString
        ' J'affiche dans mon label de test la valeur OK ou NOK
        LblTest.Text = e.ItemIndex.ToString
 
        ' Init des boutons
        Dim BtnCompos As New Button
        BtnCompos.Location = New Point(312, 220)
        BtnCompos.Text = "Insérer Compositions"
        Controls.Add(BtnCompos)
        Dim BtnValidLive As New Button
        BtnValidLive.Location = New Point(400, 220)
        BtnValidLive.Text = "Valider Live"
        Controls.Add(BtnValidLive)
 
        idmatch = LViewGameOK.Items(N).SubItems(1).Text
 
        If LViewGameOK.Items(N).SubItems(2).Text = "NOK" Then
            AddHandler BtnCompos.Click, AddressOf BtnComposClick
            LblTest.Text = "NOK"
            BtnCompos.Enabled = True
            BtnValidLive.Enabled = False
        Else
            AddHandler BtnCompos.Click, AddressOf BtnValidLiveClick
            LblTest.Text = "OK"
            BtnCompos.Enabled = False
            BtnValidLive.Enabled = True
        End If
 
    End Sub