2012-04-21 74 views
6

我有一个ContextMenuStrip,我附加到几个控件。它包含项目{添加,删除,编辑}。当用户右键单击我的一个列表框控件(弹出此上下文菜单)并选择“添加”时,如何从传入的ToolStripMenuItem引用派生出列表框控件?查找ToolStripMenuItem的父控件

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

列表框磅=((列表框)sender.Parent);或者可能是ListBox lb =((ListBox)sender.Parent.Parent); – 2012-04-21 23:50:15

+0

你试过Spy ++吗? – 2012-04-22 00:23:31

回答

14

马克,尝试:

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

如果你把它转换到ListBox,那么这个工程! – MarkP 2012-04-23 22:45:21

+0

使用键盘快捷键时,请注意SourceControl可以为空。 – John 2016-10-20 17:15:46

1

我猜你可以去父母的链,直到你找到列表框。

您可以使用OwnerItem属性加快速度,直接进入工具栏。

您可以随时将项目的标签设置为列表框,然后将其作为需求使用。