Не закрывайте ToolStripMenu при нажатии в winforms

Я работаю над проектом aC# winform, который не должен скрывать главное меню инструментов после того, как пользователь нажимает на его элемент, как я могу это сделать?

1 ответ

Решение

Установите свойство AutoClose родительского элемента меню, чтобы полоса меню не закрывалась.

Показывать:

ToolStripMenuItem file = new ToolStripMenuItem("File");
file.DropDown.AutoClose = false;
file.DropDownItems.Add("New");
file.DropDownItems.Add("Open");
file.DropDownItems.Add("Exit");

MenuStrip ms = new MenuStrip();
ms.Items.Add(file);

this.Controls.Add(ms);

Теперь вы сами должны закрыть меню:

file.DropDown.Close();

Я нашел лучший ответ на форуме MSDN. Раскрывающийся список не закрывается при нажатии, но закрывается в других случаях:

DropDown.Closing += new ToolStripDropDownClosingEventHandler(DropDown_Closing);
...
private void DropDown_Closing(object sender,  ToolStripDropDownClosingEventArgs e)
{
    if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked)
    {
        e.Cancel = true;
    }
}
Другие вопросы по тегам