Эта проблема лучше продемонстрирована, чем объяснено, поэтому я создал git repo с проектом Visual Studio 2010, который будет использоваться для см. вопрос в действии.
У меня есть проект, в котором я добавил элемент управления ComboBox (comboField
) в элемент управления TableLayout (tableLayoutPanel1
). Я установил свойство Dock
для ComboBox на Fill
, чтобы он заполнил ячейку элемента управления TableLayout, в который он был помещен. Я также установил свойство Dock
элемента управления TableLayout на Fill
, чтобы заполнить форму, на которую она была помещена. Ширина ComboBox в настоящее время составляет 193 пикселя.
Когда я запускаю форму и увеличиваю ее ширину, размер ComboBox увеличивается, как и ожидалось. Когда я уменьшаю размер формы, ComboBox уменьшает размер до тех пор, пока не достигнет первоначального размера (193 пикселя). В этот момент ширина ComboBox больше не будет уменьшаться, в результате чего правая часть элемента управления будет обрезана. Это противоречит тому, что я ожидал бы: ширина ComboBox будет уменьшаться до нуля, если не указано значение MinimumSize
. Также не указано MinimumSize
для любого из других элементов управления в форме, например, для элемента управления TableLayout.
В случае, если это имеет значение, ширина первого столбца TableLayout имеет значение Absolute
размером 100 пикселей, а ширина второго столбца таблицыLayout установлена равной AutoSize
.
Может ли кто-нибудь пролить свет на то, почему эта форма ведет себя вопреки моим ожиданиям и подсказывает, как я могу заставить это работать так, как я хочу? Любая помощь будет высоко оценена.