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