查找ToolStrip菜单项的父级控件

6

我有一个ContextMenuStrip,它附加在多个控件上。它有三个选项:{ 添加,删除,编辑 }。当用户右键单击我的列表框控件之一(弹出此上下文菜单)并选择“添加”时,如何从传递的ToolStripMenuItem引用中推导出列表框控件?

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

ListBox lb = ((ListBox)sender.Parent); 或者可能是 ListBox lb = ((ListBox)sender.Parent.Parent); - Jeremy Thompson
2个回答

15

Mark,试试这个:

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

使用键盘快捷键时要小心,否则 SourceControl 可能为空。 - John

1

我猜你可以一直向上查找父级链,直到找到列表框。

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

你也可以将项目的标签设置为列表框,然后按需使用它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接