C# 查找ToolStripMenuItem的父控件

C# 查找ToolStripMenuItem的父控件,c#,winforms,c#-4.0,C#,Winforms,C# 4.0,我有一个连接到多个控件的ContextMenuStrip。它有{添加、删除、编辑}项。当用户右键单击我的一个listbox控件(弹出此上下文菜单)并选择“添加”时,如何从传入的ToolStripMenuItem引用派生listbox控件 private void OnAddEntry(object sender, EventArgs e) { // Example: ????? ListBox lb = sender.Parent; }

我有一个连接到多个控件的ContextMenuStrip。它有{添加、删除、编辑}项。当用户右键单击我的一个listbox控件(弹出此上下文菜单)并选择“添加”时,如何从传入的ToolStripMenuItem引用派生listbox控件

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

我猜在找到列表框之前,你可以沿着父母的链条走

您可以使用OwnerItem属性直接访问toolstrip来加快速度

您可以始终将项目的标记设置为列表框,然后根据需要使用它。

标记,尝试以下操作:

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

ListBox lb=((ListBox)sender.Parent);或者ListBox lb=((ListBox)sender.Parent.Parent);使用键盘快捷键时要小心,SourceControl可能会为空。