Public Class ContextMenuStripCor Inherits ContextMenuStrip Private _source As Control Protected Overrides Sub OnOpening(ByVal e As System.ComponentModel.CancelEventArgs) _source = MyBase.SourceControl MyBase.OnOpening(e) End Sub Public Shadows ReadOnly Property SourceControl() As Control Get Return _source End Get End Property End Class
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim s As New ContextMenuStripCor Dim m As New ToolStripMenuItem Dim c As New ToolStripComboBox c.Items.Add("azerty") c.Items.Add("qsdfgh") c.Name = "ToolStripComboBox1" AddHandler c.SelectedIndexChanged, AddressOf Msg m.Text = "Test" m.DropDownItems.Add(c) m.Name = "ToolStripMenuItem1" s.Items.Add(m) s.Name = "ContextMenuStrip1" Button1.ContextMenuStrip = s End Sub Sub Msg(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripComboBox2.SelectedIndexChanged 'Le combo Dim c As ToolStripComboBox = CType(sender, ToolStripComboBox) MessageBox.Show(c.Name) 'L'item de menu Dim m As ToolStripMenuItem = CType(c.OwnerItem, ToolStripMenuItem) MessageBox.Show(m.Name) 'Le menu context Dim s As ContextMenuStripCor = CType(m.GetCurrentParent(), ContextMenuStripCor) MessageBox.Show(s.Name) 'Le bouton Dim b As Button = CType(s.SourceControl, Button) MessageBox.Show(b.Name) End Sub
Private Sub Msg(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripComboBox1.SelectedIndexChanged, ToolStripComboBox2.SelectedIndexChanged 'Le combo Dim c As ToolStripComboBox = CType(sender, ToolStripComboBox) MessageBox.Show(c.Name) 'Le menu context Dim t As ContextMenuStrip = c.GetCurrentParent() MessageBox.Show(t.Name) 'Le bouton Dim b As Button = CType(t.SourceControl, Button) MessageBox.Show(b.Name) End Sub
s.Items.Add(c)
s.Items.Add(m)
Private _Source As Control Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim s As New ContextMenuStrip Dim m As New ToolStripMenuItem Dim c As New ToolStripComboBox c.Items.Add("azerty") c.Items.Add("qsdfgh") c.Name = "ToolStripComboBox1" AddHandler c.SelectedIndexChanged, AddressOf Msg m.Text = "Test" m.DropDownItems.Add(c) m.Name = "ToolStripMenuItem1" s.Items.Add(m) s.Name = "ContextMenuStrip1" AddHandler s.Opened, AddressOf Context_Opened Button1.ContextMenuStrip = s End Sub Private Sub Context_Opened(ByVal sender As Object, ByVal e As System.EventArgs) _Source = CType(sender, ContextMenuStrip).SourceControl End Sub Sub Msg(ByVal sender As System.Object, ByVal e As System.EventArgs) 'Le bouton Dim b As Button = CType(_Source, Button) MessageBox.Show(b.Name) End Sub
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.