Привязанные элементы управления не изменяются при изменении размера окна (осторожно, 56k)

Это действительно меня пинает. У меня есть форма, созданная и принадлежащая основной форме приложения, которая используется для поиска записей. Форма размещается в закрепленной TableLayoutPanel с комбинацией строк / столбцов абсолютного и процентного размера, так что мои метки остаются того же размера, пока элементы управления вводом данных и результатами растут. Мы говорим о 20 элементах управления.

Проблема в том, что, хотя TableLayoutPanel закреплен за заливкой и все дочерние элементы управления также закреплены за заливкой, размер внутри формы не изменяется, когда я беру край окна и перетаскиваю . Все прекрасно меняет размер в дизайнере, но не в самом приложении.

Я использовал свой Google-fu, и нашел этот вопрос SO , который указал мне на эту статью MSKB . Я создал производный FlowLayoutPanel и производный TableLayoutPanel с потоковыми вызовами и вставил их, но он все еще не работает. Это ЕДИНСТВЕННАЯ форма, в которой это происходит, и другая форма также имеет довольно глубокую вложенность (она использует TabControl и TableLayoutPanel для размещения элементов управления вводом данных, но не RB).

Другая важная информация:

  • Не заданы свойства MaxSize.
  • В этой форме ничего не закреплено, за исключением значения по умолчанию в верхнем левом углу; практически все заправлено в контейнер. Однако дочерний пользовательский элемент управления, содержащий таблицу результатов поиска, размещается внутри с использованием привязки; это не было проблемой в другой форме, в которой я использую эти элементы управления, где я Мы прикрепили их к SplitPanels (вложены по две, не меньше).
  • RadioButtons и Labels имеют значение AutoSize, но больше ничего. Похоже, что это поведение по умолчанию для этих элементов управления, хотя значения выделены жирным шрифтом в конструкторе и соответствует настройке других окон, размер которых изменяется должным образом.
  • События изменения размера запускаются для формы, но не для TLP.
  • Поведение не меняется, когда TLP привязан к окну ВМЕСТО закрепления (никогда и то и другое одновременно).

Я рву волосы здесь. Помогите!

Изменить : Вот некоторые из запрошенных изображений, демонстрирующих поведение макета в дизайнере и в приложении:

alt textalt textalt textalt text

Элементы управления, которые начинаются со слова «Вложенный», являются производными непосредственно от встроенных элементов управления панели, и их единственное изменение - переопределение OnSizeChanged () для асинхронного вызова базового метода (временное решение из статьи базы знаний). Как я уже говорил, он не работает и со встроенными панелями. Как видно из последних двух окон, TLP mainLayout просто не увеличивается, даже если он прикреплен к окну в дизайнере.

7
задан Community 23 May 2017 в 12:09
поделиться