У меня странная проблема с автоматическим изменением размеров панели в пользовательском элементе управления. Эта панель привязана ко всем 4 сторонам пользовательского элемента управления.
Но привязка не всегда работает как надо:
Если пользовательский элемент управления изменяется при изменении размера формы, правая и нижняя привязки не работают. Но если размер элемента управления изменяется с помощью разделителя в форме, он работает правильно.
Все остальные элементы управления, на которые также влияет правильное изменение размера, работают правильно, просто эта панель не подойдет.
Я не вижу разницы между изменением размера через сплиттер и через форму.
Установка размера вручную в OnResize UserControl работает только в том случае, если изменение размера выполняется путем перемещения сплиттера. Если изменение размера происходит при изменении размера формы, высота и ширина панели не изменятся на новые значения.
Редактировать: Чтобы сделать его более понятным: пользовательский элемент управления добавляется в TabPage и устанавливается на Dock = DockType.Fill.
Edit2: чтобы сделать его более сложным: это иерархия, в которой используется элемент управления:
Форма содержит разделитель с двумя элементами управления (A и B). (B) содержит пользовательский элемент управления (C) с splitContainer. Разделенный контейнер-> панель 1 в (С) содержит элемент управления табуляции (D). Этот tabcontrol (D) содержит пользовательский элемент управления (E) (на вкладке). Этот пользовательский элемент управления (E) имеет разделительный контейнер (F), в который помещается другой элемент управления с tabControl (G). Этот tabcontrol (G) имеет вкладки, и на этих страницах находится описанный пользовательский элемент управления (H).
Если поместить элемент управления (H) непосредственно на панель в разъемном контейнере (C), все будет работать нормально. Поскольку для всех элементов управления, которые добавляются в splitcontainer или вкладку, задано значение docktype = fill, я не могу понять, почему последний элемент управления имеет такие проблемы.
Есть ли какие-либо ограничения в структуре Windows Forms, ограничивающие количество дочерних элементов управления?
Edit: я загрузил TestApplication, с помощью которого вы можете воспроизвести эту проблему.
http://rapidshare.de/files/49092516/TestApplication.zip.html
Это происходит только под Vista. Win XP и 7 работают нормально ...
Если вы измените размер формы, textBox с кнопкой «...» не изменится, но если вы измените размер через вертикальный splitContainer, он будет работать.