Это действительно ударяет меня по спине. У меня есть форма, созданная и принадлежащая основной форме приложения, которая используется для поиска записей. Форма выложена в прикрепленной таблице TableLayoutPanel с комбинацией строк/столбцов Absolute и Percentage, так что мои ярлыки остаются одинаковыми, а элементы ввода данных и контроля результатов растут. Мы говорим о 20 контролях, которые все сказали.Якорные элементы управления не изменяются при изменении размера окна (56k)
Проблема заключается в том, что, хотя TableLayoutPanel заполнен док-станцией, и все дочерние элементы управления также заполнены, ничто не изменяет размер внутри формы, когда я захватываю край окна и перетаскиваю. Все изменяется просто отлично в дизайнере, но не в самом приложении.
Я использовал свой Google-fu и нашел this SO question, который указал мне на this MSKB article. Я создал производную FlowLayoutPanel и производную таблицу TableLayoutPanel с потоковыми вызовами и поместил их, но он все еще не работает. Это единственная форма, на которой это происходит, а другая форма также имеет довольно глубокую вложенность (она использует TabControl и TableLayoutPanel для компоновки элементов управления вводом данных, но без RB).
Другой уместна информация:
- Там нет свойств MaxSize набора.
- Ничего не закреплено в этой форме, за исключением по умолчанию Top-Left; почти все заполнено док-станцией к контейнеру. Тем не менее, дочерний пользовательский элемент управления, содержащий таблицу результатов поиска, излагается внутренне с использованием привязки; это не было проблемой в другой форме, в которой я использую эти элементы управления, где я заполнял их до SplitPanels (вложенные две глубины, не менее).
- RadioButtons и Labels имеют значение AutoSize, но ничего больше. По-видимому, это поведение по умолчанию для этих элементов управления, даже несмотря на то, что значения выделены жирным шрифтом в конструкторе и соответствует настройке других окон, размер которых изменяется правильно.
- События изменения размера снимаются для формы, но не TLP.
- Поведение не меняется, когда TLP привязана к окну INSTEAD от стыковки (это никогда не происходит одновременно).
Я отрываю свои волосы отсюда. Помогите!
Edit: Вот некоторые из запрошенных картинки, показывающие поведение макета в конструкторе и в приложении:
Элементы управления, которые начинаются с «вложенной» производными непосредственно из встроенных элементов управления панелью, и их единственным изменением является переопределение OnSizeChanged() для асинхронного вызова базового метода (обходной путь из статьи KB). Как я уже говорил, он не работает со встроенными панелями. Как вы можете видеть из последних двух окон, mainLayout TLP просто не растет, даже если он пристыкован к окну в дизайнере.
У вас есть изображение или изображение «контур документа» – Hath
@Hath: Что вы имеете в виду, «вид в плане документа»? Я принесу вам печатные экраны формы в Design View и в приложении. – KeithS
В режиме просмотра, вид-> Другие окна-> Структура документа (Ctrl + W, U) – Hath