Bonjour,
J'aimerai avoir de l'aide sur un problème relatif à un ContextMenuStrip.
Il est pré-existant sur le formulaire, mais sans items dedans. Les premiers items sont ajoutés par du code et contiennent chacun le texte d'un des 4 boutons présents sur le formulaire.
Par la suite des subitems sont ajoutés a ceux existants.
Lorsque j'utilise l'event ItemClicked cela fonctionne très bien pour les premiers items (ceux avec les noms des boutons), mais rien ne se passe lorsque je clic sur n'importe lequel des subitems.
Quelqu'un peut-il m'aider à comprendre pourquoi svp ?
Voici le code d'ajouts des premiers items :
Et le code d'ajout des subitems dont le text est récupéré depuis une database, ainsi que poiur l'icone associée au subitem :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Accueil.CMSNotify.Items.Add(Accueil.Btn01.Text) Accueil.CMSNotify.Items.Add(Accueil.Btn02.Text) Accueil.CMSNotify.Items.Add(Accueil.Btn03.Text) Accueil.CMSNotify.Items.Add(Accueil.Btn04.Text)
Ici le code simple de l'event ItemClicked pour test :
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94 'On rafraîchit également le menu contextuel sur l'icône de l'application réduite Dim RequeteCMS As String = "SELECT * FROM PROGRAMMES" Dim CommandeCMS As OleDbCommand = New OleDbCommand(RequeteCMS, Connexion) Dim ImageMenu As IO.MemoryStream Try Connexion.Open() Dim ReaderCMS As OleDbDataReader = CommandeCMS.ExecuteReader() While ReaderCMS.Read() 'Récupération et écriture du fichier image pour illustrer le programme Dim RequeteImage As String = "SELECT Image,NomImage FROM PROGRAMMES WHERE ID=" & ReaderCMS(0) Dim CommandeImage As OleDbCommand = New OleDbCommand(RequeteImage, Connexion) Dim FichierBytes As Byte() Dim NomDuFichier As String = "" Using sdr As OleDbDataReader = CommandeImage.ExecuteReader sdr.Read() FichierBytes = DirectCast(sdr(0), Byte()) NomDuFichier = sdr(1) End Using 'On reconstruit l'image associée Try ImageMenu = New IO.MemoryStream(FichierBytes) Catch ex As Exception MsgBox("Une erreur est survenue durant la récupération de l'image d'illustration du programme !" & vbCrLf & vbCrLf & ex.Message, vbOKOnly + vbCritical, "MyLauncher") Exit Sub End Try If ReaderCMS(5) = Accueil.Btn01.Text Then Dim Entry As New ToolStripMenuItem Entry = Accueil.CMSNotify.Items(0) Entry.DropDownItems.Add(ReaderCMS(1), Image.FromStream(ImageMenu)) ImageMenu.Close() ElseIf ReaderCMS(5) = Accueil.Btn02.Text Then Dim Entry As New ToolStripMenuItem Entry = Accueil.CMSNotify.Items(1) Entry.DropDownItems.Add(ReaderCMS(1), Image.FromStream(ImageMenu)) ImageMenu.Close() ElseIf ReaderCMS(5) = Accueil.Btn03.Text Then Dim Entry As New ToolStripMenuItem Entry = Accueil.CMSNotify.Items(2) Entry.DropDownItems.Add(ReaderCMS(1), Image.FromStream(ImageMenu)) ImageMenu.Close() ElseIf ReaderCMS(5) = Accueil.Btn04.Text Then Dim Entry As New ToolStripMenuItem Entry = Accueil.CMSNotify.Items(3) Entry.DropDownItems.Add(ReaderCMS(1), Image.FromStream(ImageMenu)) ImageMenu.Close() End If End While Connexion.Close() Catch ex As Exception Connexion.Close() MsgBox(ex.Message) Exit Sub End Try
Donc lorsque je clic sur les premiers items de la liste, la messagebox affiche bien le texte, mais sur les subitems rien ne se passe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Public Sub CMSNotify_ItemClicked(sender As Object, e As ToolStripItemClickedEventArgs) Handles CMSNotify.ItemClicked If ListeProgrammes.Contains(e.itemClicked.Text.ToString Then MsgBox("Trouvé !") Else MsgBox("Pas trouvé !") End If End Sub
Si vous avez des questions ou besoin de plus d'infos n'hésitez pas !
Merci d'avance de votre aide.
Bonne journée.
Cordialement-







Répondre avec citation
Partager