Je n’ai pas vocation à faire un tutorial complet sur le sujet, mais juste donner quelques éléments d’information sur ce magnifique control de VB.NET qui a sans doute été responsable de plusieurs crises d’hystéries et de calvities.
La problématique que j’ai est de récupérer le nom du control sur lequel je fais un clique droit. Après plusieurs heures de recherche, j’ai trouvé un truc tout bête :
- Créer le ContextMenuStrip (CMS)
- Assigner le CMS à tous les controls que vous souhaitez utiliser
- Utiliser le code suivant
Private Sub ContextMenuStrip1_Opening(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles ContextMenuStrip1.Opening
'Acquisition des références
Dim c As Control = ContextMenuStrip1.SourceControl
Dim tsi As ToolStripDropDownItem = ContextMenuStrip1.OwnerItem
Dim nomControl As String = c.Name
ContextMenuStrip1.Items.Clear()
If nomControl = "xxx" Then
ElseIf nomControl = "yyy" Then
End If
e.Cancel = False
End Sub