1

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

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

背景资料:

菜单项的Click处理程序以:

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

我期待在ctl变量中引用 TextBox,但它返回为 NULL。

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

问题是,我没有得到这些控件的右键事件。相反,系统级上下文菜单弹出,所以我切换到使用 ContextMenuStrip 属性。这并没有让我有机会设置Tag属性以指示单击了哪个 TextBox。

4

0 回答 0