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