2012-04-21 11 views
6

私はいくつかのコントロールに添付するContextMenuStripを持っています。 {Add、Remove、Edit}という項目があります。ユーザーが、このコンテキストメニューをポップアップするリストボックスコントロールの1つを右クリックし、「追加」を選択すると、渡されるToolStripMenuItemリファレンスからリストボックスコントロールを派生させるにはどうすればよいですか?ToolStripMenuItemの親コントロールを検索

private void OnAddEntry(object sender, EventArgs e) 
    { 
     // Example: ????? 
     ListBox lb = sender.Parent; 
    } 
+0

のListBoxポンド=((リストボックス)sender.Parentを)。またはおそらくListBox lb =((ListBox)sender.Parent.Parent); –

+0

Spy ++を試しましたか? –

答えて

14

マーク、これを試してみてください。

((ContextMenuStrip)(((ToolStripMenuItem)sender).Owner)).SourceControl 
+1

これをListBoxにキャストすると、これが機能します。 – MarkP

+0

キーボードショートカットを使用する場合は注意が必要です.SourceControlはnullになります。 – John

1

リストボックスが見つかるまで、親の連鎖を推測することができます。

これをスピードアップするには、OwnerItemプロパティを使用して、ツールストリップにまっすぐに進むことができます。

いつでもアイテムのタグをリストボックスに設定し、それを必要として使用することができます。

関連する問題