Преждевременное закрытие размещенного пользовательского контроля в меню панели инструментов - PullRequest
0 голосов
/ 06 октября 2011

Я размещаю usercontrol в выпадающем списке инструментов, используя описанную здесь технику: http://windowsclient.net/blogs/faqs/archive/2006/07/12/how-can-i-add-a-user-control-to-a-toolstrip.aspx.

Эта техника прекрасно работает, за исключением того факта, что пользовательский элемент управления, который я размещаю, имеет несколько комбинированных окон. Некоторые из них выпадают за пределы пользовательского контроля. Когда я нажимаю на комбинированные элементы за пределами поверхности пользовательского элемента управления, он закрывает пункт меню (аналогично тому, как если вы выпадаете из меню и затем щелкаете в любом месте окна за пределами меню).

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

1 Ответ

0 голосов
/ 07 октября 2011

Я нашел решение проблемы.Это не очень элегантно, но это функционально.Для комбо, которые выходят за рамки пользовательского контроля, я просто отслеживаю, когда они открыты.Я создал свой собственный производный класс ToolStripDropDown, который я назначил в качестве раскрывающегося списка.Затем он проверяет, открыта ли какая-либо из двух комбинаций, и если они есть, он переопределяет метод OnClosing раскрывающегося списка и отменяет закрытие.Кажется, работает нормально без (пока) каких-либо нежелательных побочных эффектов.

...