在ContextMenuStrip中悬停时禁用自动子菜单显示

时间:2013-10-27 08:17:39

标签: c# winforms visual-studio-2012 contextmenustrip

如果我有一个带子菜单项的上下文菜单,当我只是将鼠标悬停在主菜单项上时,是否可以停止弹出/显示子菜单?如果是这样,怎么样?

Submenu item example screenshot

1 个答案:

答案 0 :(得分:2)

每个ToolStripDropDownItem都有一个名为DropDown(类型为ToolStripDropDown)的属性,指的是当鼠标悬停在项目上时将显示的下拉列表。 ToolStripDropDown有一个名为Opening的事件,可让您轻松取消下拉菜单。使用以下代码,所有代码都可以在表单构造函数中设置:

//Suppose the item you want to suppress automatically showing 
//the drop down is item1
bool clicked = false;
item1.DropDown.Opening += (s,e) => {
  e.Cancel = !clicked;
  clicked = false;
};
item1.Click += (s,e) => {
  clicked = true;
  item1.ShowDropDown();
};
//The code above disables the automatic dropping-down 
//and shows the drop down by clicking on the item1.