SplitContainer - Что вызывает противоречивое поведение, которое я испытываю, когда ориентация установлена на горизонтальную?
Начиная с нуля в новом проекте, в котором свойства формы Form1 по умолчанию не были изменены, я помещаю SplitContainer в форму и устанавливаю его свойства:
Якорь - сверху, слева
Док - Заполнить
Ориентация - Вертикальная
Затем я помещаю второй SplitContainer на левую панель (панель 1) первого SplitContainer и снова устанавливаю его свойства на указанные выше, за исключением того, что на этот раз ориентация разделителя установлена на горизонтальную.
Теперь я помещаю два CheckedListBox в верхнюю и нижнюю панели (панели 1 и 2) второго SplitContainer. Свойства обоих CheckedListBoxes установлены в:
Якорь - сверху, слева
Док - Заполнить
Теперь я добавляю TextBox на правую панель (панель 2) первого SplitContainer и устанавливаю его свойства:
Якорь - сверху, слева
Док - Заполнить
Multi-Line - True
Когда я компилирую и запускаю это приложение, вертикальный сплиттер, который является частью первого SplitContainer, который я добавил, ведет себя и работает точно так, как ожидалось - так что никаких проблем нет. Однако горизонтально ориентированный разделитель во втором SplitContainer постоянно отображает хаотичное поведение - ширина самого разделителя изменяется по мере его перемещения вверх и вниз. Но это увеличение или уменьшение ширины разделителя также не согласуется с направлением, в котором он был перемещен - например, перемещение его на некоторое расстояние от исходного положения при запуске может привести к тому, что разделитель будет тоньше, чем был ранее дальнейшее изменение в сторону увеличения приводит к увеличению толщины.
Нижний край нижнего CheckedListBox также перемещается вверх и вниз, когда я перемещаю разделитель, и, как и раньше, это поведение не согласуется с направлением, в котором перемещается разделитель.
Чтобы не переносить изменения свойств компонента из одного эксперимента в другой, я пытался выяснить, что происходит, запустив с полдюжины или около того новых проектов с нуля и пробуя разные вещи, включая изменения в Anchor, BorderStyle, Dock. и свойства Margin, но, к сожалению, я не мудрее: -(
Кто-нибудь имел подобный опыт такого странного поведения и может предложить мне решение? Я мог бы пропустить что-то простое, если так, что это?
Спасибо за прочтение.
Edit \ Update - После дальнейших экспериментов я смог определить, что нежелательное поведение, которое я испытываю, каким-то образом связано с CheckedListBoxes - я заменил оба на многострочные текстовые поля, чьи свойства "Anchor" и "Dock" были установлены на "Top, Слева "и" Заполнить "соответственно, и после запуска приложения ошибочное поведение больше не возникает - и вертикальный, и горизонтальный разделители работают правильно.
1 ответ
Установите для свойства IntegralHeight списков значение False, чтобы им было разрешено изменять размер по размеру панели.