Всплывающее окно и контекстное меню - PullRequest
1 голос
/ 23 февраля 2010

Я использую ToolStripDropDown для размещения пользовательского элемента управления в качестве всплывающего окна. Проблема заключается в том, что когда контекстное меню отображается внутри этого всплывающего окна, само всплывающее окно закрывается в момент открытия контекстного меню. Я попытался создать подкласс ContextMenuStrip и добавил WS_EX_NOACTIVATE в CreateParams, но ничего не изменилось. Сначала я подумал, что сделать это невозможно, так как это обычное поведение, но затем я попытался поместить класс TextBox во всплывающий пользовательский элемент управления и вызвать контекстное меню элемента управления «Редактировать», а родительское всплывающее окно не закрылось. , Чего мне не хватает?

Ответы [ 2 ]

1 голос
/ 04 мая 2010

Была похожая проблема. На моем UserControll была панель инструментов. Когда я нажал кнопку раскрывающегося списка инструментов, показывалось раскрывающееся меню, но всплывающее окно исчезло. Причиной было то, что всплывающее окно. Autoclose было правдой. После установки false всплывающее окно больше не закрывается.

        ToolStripDropDown popup = new ToolStripDropDown();
        popup.AutoClose = false;         //Set to FALSE
        popup.Margin = Padding.Empty;
        popup.Padding = Padding.Empty;
        ToolStripControlHost host = new ToolStripControlHost(userControl1);
        host.Margin = Padding.Empty;
        host.Padding = Padding.Empty;
        popup.Items.Add(host);
        popup.Show(button1, new Point(100,100));
0 голосов
/ 03 марта 2017

Фактическое решение должно быть тем в последнем комментарии Мартина: Используйте ContextMenu вместо ContextMenuStrip Это сработало для меня, и ToolStripDropDown больше не закрывается сам по себе при щелчке правой кнопкой мыши по одному из его элементов управления контентом, как и должно быть. Нам все еще нужно это для AutoClose, отключение AutoClose для ToolStripDropDown будет делать плохие вещи, оно должно закрываться при потере фокуса. Пример: откройте любое другое окно приложения, и ToolStripDropDown продолжит отображаться сверху

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...