当未设置特定标志时,我需要隐藏 contextmenustrip。由于我认为我们无法显式控制上下文菜单条的显示/隐藏,因此我决定将鼠标右键单击与上下文菜单条关联的控件。它是一个用户控件,所以我尝试处理它的 MouseClick 事件,在该事件中我检查是否设置了标志以及按钮是否为右键。然而令我惊讶的是,该事件不会在鼠标右键单击时触发,而是仅在左键单击时触发。
我有什么问题还是有任何解决方法?
检测到右键单击,问题标题和描述已更改
在做了更多研究之后,当我处理控件上的 Mouse_Down 事件时,我得到了右键触发。但是我仍然一无所知,因为如何明确阻止 ContextMenuStrip From Loading。另一个问题是,为什么 MouseClick 没有检测到右键单击?
当前的解决方法
注册事件处理程序
userControl1.Control1.MouseDown += new MouseEventHandler(Control1_MouseDown);
void Control1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right && flag == false)
{
userControl1.Control1.ContextMenuStrip = null;
}
else
{
userControl1.Control1.ContextMenuStrip = contextMenuStrip1;
}
}
这是我正在做的当前解决方法。但是如何在 ContextMenuStrip 的打开事件中更改它