ToolStripMenuItem не закрывается при щелчке дочернего ToolStripMenuItem в C # WinForm - PullRequest
3 голосов
/ 19 февраля 2010

Есть ли способ, чтобы ToolStripMenuItem не закрывался, когда я щелкаю дочерний элемент управления (в его коллекции DropDrowItems)?

В моем случае у меня есть несколько ToolStripMenuItems, которые работают как флажок. На самом деле, я реализовал поведение радио в некоторых ToolStripMenuItems, используя их свойство Check. Но я не хочу, чтобы меню закрывалось, когда я щелкаю по любому из них, потому что они не являются действием, они представляют собой просто опции в пункте меню.

Это возможно?

Ответы [ 3 ]

4 голосов
/ 20 марта 2010
   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();
                } 
            }
1 голос
/ 09 апреля 2010

Ищите ToolStripDropDown.AutoClose свойство.

0 голосов
/ 09 июня 2010

Только для вашей информации:

  • Событие закрытия существует в ContextMenuStrip и ToolStripDropDown .
  • При проектировании с конструктором у вас есть доступ к ContextMenuStrip (всплывающее меню) и объектам ToolStripMenuItem (подменю), но не к объектам ToolStripDropDown объекта ToolStripMenuItem!
  • Вот почему вы должны сами установить событие Closing ToolStripDropDown по коду (см. Ответ Zabulus).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...