2010-02-19 51 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答案)。
相關問題