UserControl с значительным окном инструмента - PullRequest
0 голосов
/ 08 января 2011

В C # WinForms я хотел бы сделать UserControl, который имитирует внешний вид ToolWindow - размер, с местом для заголовка и кнопкой закрытия в правом верхнем углу.Это кажется возможным через переопределение CreateParams (), использование соответствующих констант из WinUser.h и добавление пользовательских обработчиков для соответствующих событий мыши, но это кажется большой проблемой для чего-то такого простого.Прежде чем перейти к этому, есть ли более простой способ?

Ответы [ 2 ]

2 голосов
/ 09 января 2011

Действительно, самый простой способ - это просто использовать Form с FormBorderStyle = SizeableToolWindow. Вот для чего это было сделано. Отобразите его с перегрузкой «Показать (владелец)», чтобы он всегда был над главным окном. Если вы хотите спасти UserControl, просто введите Dock = Заполните форму. Хотя разоблачение его свойств становится сложнее.

В DoifPanel Suite от Weifenluo вы найдете модель окон, похожую на модель Visual Studio.

0 голосов
/ 08 января 2011

ToolWindow - это окно, UserControl - это элемент управления, который находится внутри окна (например, текстовое поле, кнопка и т. Д.). Если вы хотите иметь пользовательский элемент управления, который имеет значительный размер, имеет заголовок и кнопку закрытия, я думаю, вам придется создать панель заголовка и кнопки закрытия и ручки размера как части самого элемента управления.

Вам необходимо удалить элемент управления из его родительского элемента при «закрытии» и изменить размер элемента управления в его родительском элементе при «изменении размера» с помощью ручек размера.

...