Создание настраиваемого пользовательского интерфейса TypeEditor для отображения диалогового окна для взаимодействия с сеткой свойств Visual Studio выполняется путем реализации IWindowsFormsEditorService .
К сожалению, этот интерфейс используетShowDialog
метод, который не предоставляет простое средство для отображения немодальных диалогов.Поддерживаются только модальные диалоговые окна, что означает, что вы не можете действительно копировать значения из любых других областей Visual Studio при редактировании этого конкретного свойства, которое вызывает модальное диалоговое окно.
Однако, если вы готовы сделать некоторую тяжелую работу игрязная работа, вы можете добиться желаемого, используя вместо этого методы DropDownControl
и CloseDropDown
.Идея состоит в том, чтобы отобразить немодальное диалоговое окно самостоятельно в отдельном потоке и заблокировать, пока пользователь не закроет диалоговое окно.Вам нужно будет прибегнуть к примитивам синхронизации, чтобы это работало.Аналогичный пример для немодального диалогового окна выбора цвета можно найти здесь.
http://www.codeproject.com/KB/selection/WinFormsColorEditor.aspx