C# 查找ToolStripMenuItem的父控件
我有一个连接到多个控件的ContextMenuStrip。它有{添加、删除、编辑}项。当用户右键单击我的一个listbox控件(弹出此上下文菜单)并选择“添加”时,如何从传入的ToolStripMenuItem引用派生listbox控件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; }
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可能会为空。