【发布时间】:2019-06-18 19:56:51
【问题描述】:
我在 Visual Studio C# IDE 中定义了一个 ContextMenuStrip 上下文菜单,并对程序进行了编码,以便在用户右键单击屏幕上的对象时成功弹出上下文菜单。用户可以从上下文菜单中选择一个项目,代码成功确定用户选择了哪个上下文菜单项。到目前为止,一切都很好。问题是上下文菜单接受右键单击作为选择上下文菜单项的机制。 当我不小心双击屏幕上的一个对象时,我注意到了这一点……第一次单击弹出菜单,第二次单击最终选择了恰好在鼠标光标下绘制的上下文菜单项。
我的搜索只导致了在右键单击时弹出上下文菜单的方法,而不是在显示菜单时如何处理(或忽略)右键单击。
这是显示上下文菜单的命令:
ctxMenu.Show(this, pt);
其中“this”是表单,“pt”是表单上单击鼠标的点。
这里有一段在选择上下文菜单项时触发的代码:
private void ctxMenu_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
// Make context menu go away
ctxMenu.Hide();
switch (e.ClickedItem.Text)
{
case "blah blah blah"
...
break;
}
}
Microsoft Office 产品(如 Word 和 Excel)中的上下文菜单忽略右键单击,即使显示子菜单也是如此。有没有办法让 C# ContextMenuStrip 也忽略右键单击?
【问题讨论】:
标签: c# contextmenu right-click