Как ограничить область управления клиентом в пользовательском элементе управления WinForms - PullRequest
1 голос
/ 17 декабря 2008

У меня есть пользовательский элемент управления, который использует конструктор, унаследованный от ParentControlDesigner, чтобы разрешить удаление дочерних элементов управления. Я не использую никаких внутренних дизайнеров, просто простые вещи с одним родителем.

Этот элемент управления отображает «заголовок», поэтому я пытаюсь сделать три вещи:

  1. Дочерние элементы управления должны быть прикреплены к нижней части заголовка, а не к верхней части элемента управления, если задано значение Top или Fill.

  2. При перетаскивании мышью дочерние элементы управления привязываются к нижней части заголовка вместо верхней части элемента управления.

  3. Предотвращение перетаскивания элементов управления в область заголовка, точка (у меня такое чувство, что это может быть невозможно).

(1) является наиболее важным - я знаю, что это возможно, потому что я видел другие элементы управления, которые делают это. (2) также будет серьезной помощью. (3) Меня это не волнует, было бы неплохо иметь.

Кто-нибудь сможет указать мне правильное направление о том, как реализовать эти правила, без необходимости прибегать к неуклюжей подпанели и методам InternalControlDesigner?

1 Ответ

0 голосов
/ 19 июля 2009

Предотвращение перетаскивания элементов управления на область заголовка, точка (у меня есть ощущение, что это может быть невозможно)

Наличие переопределения элемента управления (самого элемента управления, а не дизайнера) Control.DisplayRectangle.get может помочь ограничить его дочерние элементы.

...