ContextMenuStrip
項目の 1 つに、DropDownItems
動的に追加されたオブジェクトのコレクションであるプロパティがある場所がありToolStripMenuItem
ます。サブアイテムClick
イベントを処理すると、送信者のタイプは ですToolStripMenuItem
がOwner
、ToolStripDropDownMenu
. これから「ホスト」ContextMenuStripを決定する方法が見つかりません。Owner
独自のプロパティはなく、 Parent
null を返します。
以下の@Steveによって投稿されたコードのこの適応を使用すると:
Dim dropDownItem = DirectCast(sender, ToolStripDropDownItem)
Dim menu As ContextMenuStrip = DirectCast((((dropDownItem.DropDown).OwnerItem).OwnerItem).Owner, ContextMenuStrip)
Dim grid = menu.SourceControl
thenmenu.SourceControl
はNothing
、まだトップレベルを処理するとき、つまり、このような非ドロップダウンメニュー項目のクリック
Dim item As ToolStripMenuItem = DirectCast(sender, ToolStripMenuItem)
Dim strip As ContextMenuStrip = DirectCast(item.Owner, ContextMenuStrip)
Dim grid As DataGridView = DirectCast(strip.SourceControl, DataGridView)
次に、探していたグリッドを取得します。