获取ToolStripDropDownItem所属的ContextMenu?

时间:2010-03-16 21:50:52

标签: c# winforms

如何获得ContextMenu所属的ToolStripDropDownItem?这是为了将ContextMenu.SourceControl用作逻辑 sender添加到事件中。

2 个答案:

答案 0 :(得分:1)

<德尔> `ToolStripItem.OwnerItem` [http://msdn.microsoft.com/en-us/library/system.windows.forms.toolstripitem.owneritem.aspx][1]

该属性可用于将菜单项树向上移动到顶级项目...仅仅是菜单的Owner属性后的内容?

var control = ((ContextMenuStrip)topLevelMenuItem.Owner).SourceControl;

显然使用as等进行空检查......

如果我遗漏了这个地方,可能会发布通过代码构建的菜单的代码片段来澄清类型(ContextMenu vs ContextMenuStrip等)

PK: - )

答案 1 :(得分:0)

我需要将Owner属性用作ContextMenuStrip

ToolStripDropDownItem t = sender as ToolStripDropDownItem;
if (t == null)
    return null;
ContextMenuStrip cm = t.Owner as ContextMenuStrip;
if (cm == null)
    return null;
return cm.SourceControl;