查找触发上下文菜单的控件

时间:2013-08-10 17:48:11

标签: c# .net winforms

我有一个包含 TextBox 控件数组的对话框。其中每个都将 ContextMenuStrip 属性设置为指向相同的上下文菜单控件“ ebContextMenu ”。当用户右键单击文本框时,将出现上下文菜单,然后用户选择一个项目。这会触发项目的单击事件处理程序。

我的问题是,在事件处理程序中,如何确定右键单击哪个特定的TextBox控件以显示上下文菜单?

背景资料:

菜单项的单击处理程序以:

开头
        ToolStripMenuItem tsmi = (ToolStripMenuItem)sender;
        ToolStrip ts = tsmi.Owner;
        Control ctl = ts.Parent;

我原本期望在 ctl 变量中引用TextBox,但它会以NULL形式返回。

我最初的方法是捕获文本框的单击事件。在事件处理程序中,我检查了右键,然后设置了上下文菜单项的标记属性并触发了上下文菜单。然后在菜单项的单击事件处理程序中,我可以检查标记属性以确定单击了哪个TextBox。

问题是,我没有得到这些控件的右键事件。而是弹出系统级上下文菜单,因此我切换到使用ContextMenuStrip属性。这不会让我有机会设置标记属性来指示单击了哪个TextBox。

0 个答案:

没有答案