SplitContainer - что вызывает непоследовательное поведение, которое я испытываю при горизонтальной ориентации?

Начиная с нуля в новом проекте, в котором свойства формы Form1 по умолчанию не были изменены, я помещаю SplitContainer в форму и устанавливаю его свойства на:

Якорь - вверху, слева

Док - Заливка

Ориентация - Вертикальная

Затем я помещаю второй SplitContainer в левую панель (панель 1) первого SplitContainer и снова устанавливаю его свойства на указанные выше, за исключением того, что на этот раз ориентация разделителя установлена ​​горизонтально.

Теперь я помещаю два элемента CheckedListBox в верхнюю и нижнюю панели (панели 1 и 2) второго SplitContainer. Свойства обоих CheckedListBoxes установлены на:

Якорь - вверху, слева

Док - Заливка

Теперь я добавляю TextBox на правую панель (панель 2) первого SplitContainer и устанавливаю его свойства:

Якорь - вверху, слева

Док - Заливка

Многострочный - Верно

Когда я компилирую и запускаю это приложение, вертикальный разделитель, который является частью первого добавленного мною SplitContainer, ведет себя и работает точно так, как ожидалось - так что никаких проблем. Однако горизонтально ориентированный разделитель во втором SplitContainer постоянно демонстрирует неустойчивое поведение - ширина самого разделителя изменяется при его перемещении вверх и вниз. Но это увеличение или уменьшение ширины разветвителя также не согласуется с направлением, в котором он был перемещен - например, перемещение его на некоторое расстояние от исходного положения при запуске может привести к тому, что разветвитель станет тоньше, чем он был ранее, когда дальнейшее увеличение размера приводит к тому, что он становится толще.

Нижний край нижнего элемента CheckedListBox также перемещается вверх и вниз, когда я перемещаю разделитель, и, как и раньше, это поведение не согласуется с направлением, в котором перемещается разделитель.

Чтобы избежать переноса изменений свойств компонента из одного эксперимента в другой, я пытался выяснить, что происходит, начиная с полдюжины или около того новых проектов с нуля и пробуя разные вещи, включая изменения в Anchor, BorderStyle, Dock. , и свойства Margin, но, к сожалению, я не стал мудрее: - (

Кто-нибудь имел подобный опыт такого беспорядочного поведения и может предложить мне решение? Я могу упустить из виду что-то простое, если да, то что?

Спасибо за чтение.

Edit \ Update - После дальнейших экспериментов я смог определить, что нежелательное поведение, с которым я столкнулся, каким-то образом связано с CheckedListBoxes - я заменил оба многострочных текстовых поля, свойства "Anchor" и "Dock" были установлены на "Top, Влево »и« Заливка »соответственно, и при запуске приложения неустойчивое поведение больше не возникает - как вертикальный, так и горизонтальный разделители работают правильно.


person The Thing    schedule 24.10.2010    source источник


Ответы (1)


Установите для свойства IntegralHeight списков значение False, чтобы им было разрешено изменять свой размер в соответствии с размером панели.

person Hans Passant    schedule 24.10.2010