Как ограничить область управления клиентом в пользовательском элементе управления WinForms
У меня есть пользовательский элемент управления, который использует конструктор, унаследованный от ParentControlDesigner, чтобы разрешить удаление дочерних элементов управления. Я не использую никаких внутренних дизайнеров, просто прямые вещи с одним родителем.
Этот элемент управления отображает "заголовок", поэтому я пытаюсь сделать три вещи:
Дочерние элементы управления должны быть прикреплены к нижней части заголовка, а не к верхней части элемента управления, если установлено значение Верхняя часть или Заполнение.
При перетаскивании мышью дочерние элементы управления привязываются к нижней части заголовка, а не к верхней части элемента управления.
Не допускайте перетаскивания элементов управления в область заголовка, точка (у меня такое ощущение, что это может быть невозможно).
(1) является наиболее важным - я знаю, что это возможно, потому что я видел другие элементы управления, которые делают это. (2) также будет серьезной помощью. (3) Меня это не волнует, было бы неплохо иметь.
Может ли кто-нибудь указать мне правильное направление реализации этих правил, не прибегая к неуклюжей подпанели и методам InternalControlDesigner?
1 ответ
Предотвратить перетаскивание элементов управления в область заголовка, точка (у меня такое ощущение, что это может быть невозможно)
Переопределение элемента управления (самого элемента управления, а не дизайнера) Control.DisplayRectangle.get
может помочь ограничить своих детей.