2010-02-19 215 views
3

当我点击一个孩子控件(在它的DropDrowItems集合中)时ToolStripMenuItem没有关闭吗?ToolStripMenuItem当孩子ToolStripMenuItem在C#WinForm中被点击时没有关闭

在我的情况下,我有一些ToolStripMenuItems作为复选框。实际上,我使用Check属性在一些ToolStripMenuItems中实现了一个无线电行为。但是当我点击其中的任何一个时,我不希望菜单关闭,因为它们不是一个动作,它们只是菜单项中的选项。

这可能吗?

回答

4
this.menuItem.DropDown.Closing += new ToolStripDropDownClosingEventHandler(DropDown_Closing); 

void DropDown_Closing(object sender, ToolStripDropDownClosingEventArgs e) 
      { 
       if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked) 
       { 
        e.Cancel = true; 
        ((ToolStripDropDownMenu) sender).Invalidate(); 
       } 
      } 
+0

即使在菜单项是深层次的情况下也能正常工作。 – 2014-06-04 13:59:27

0

只是为了您的信息:

  • 的ContextMenuStripToolStripDropDown结束活动存在。
  • 虽然与设计师的设计,你可以访问的ContextMenuStrip(弹出式菜单)和ToolStripMenuItem(子菜单)的对象,而不是ToolStripDropDown的ToolStripMenuItem的对象!
  • 这就是为什么您必须通过代码设置ToolStripDropDown对象的关闭事件(请参阅Zabulus答案)。
相关问题