Я испытываю очень странное поведение с MenuStrip:
- Создайте новый проект WinForms (.net 4.0. C # или VB.NET не имеет значения; я использовал C #).
- Поместите
MenuStrip
в форму по умолчанию. Щелкните правой кнопкой мыши и выберите Вставить стандартные элементы, чтобы быстро создать его для вас. Этот шаг также можно сделать вручную. - Также добавьте
OpenFileDialog
в свою форму. Добавьте обработчик события
DropDownItemClicked
в меню «Файл». Добавьте в него следующий код:private void fileToolStripMenuItem_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e) { if (e.ClickedItem.Name == "openToolStripMenuItem") { if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) MessageBox.Show(openFileDialog1.FileName); } }
Запустите проект. Щелкните меню Файл, а затем команду Открыть. Появляется диалоговое окно с файлом, НО меню Файл не исчезает. Фактически, он рисует поверх
OpenFileDialog
, скрывая какую-то его часть. После того, как вы нажмете Открыть или Отмена в диалоговом окне, диалоговое окно и меню Файл исчезнут.
Почему это так? Это известная ошибка или функция? Я также проверил, что этого не происходит для моих диалоговых окон, только для встроенных диалогов. Перед отображением встроенных диалоговых окон необходимо вручную вызвать FileToolStripMenuItem.HideDropDown()
.