2017-02-21 5 views
-1

У меня есть форма, как показано на рисунке ниже. Форма просто содержит SplitContainer с двумя TreeViews в каждой из панелей, плюс надпись над TreeView.Предотвращать появление элементов формы Windows при изменении размера снизу?

Вот картина формы, которая до сих пор не изменен:

Каждый TreeView привязан к слева и сверху, и пристыкован к низу. Каждая метка привязана к верхней и левой части. Сплитконтейнер привязан к нижней, левой и правой.

Вышеуказанные настройки позволяют мне изменять размер TreeViews одинаково при изменении размера формы. Однако, при изменении размера высоты формы, а метки (и, конечно, TreeViews а) выталкиваются из поля зрения формы, как показано на рисунке:

Как я могу предотвратить элементы толкают мимо заголовка? Предпочтительно без использования события SizeChanged. Я попробовал добавить дополнение к форме, а также попробовать разные режимы стыковки/якоря, но я не смог это ограничить.

+1

Ваш SplitContainer также должен быть прикреплен к верхней части. – LarsTech

+0

@LarsTech Это предотвращает смещение меток над формой, но не TreeViews. – DK7195

+0

Если древовидные структуры находятся в раздельном контейнере, они должны быть заполнены док-станцией. – LarsTech

ответ

1

Выполните следующие действия в указанном порядке:

  1. Либо якорь SplitContainer на все четыре стороны или док заполнить его.
  2. Поместите этикетки на панели. Сделайте их меньше, чем панели, чтобы быть уверенными, что они действительно становятся дочерними элементами управления панелями (а не формой). Установите Dock собственности на Top.
  3. Место TreeViews на панели. Важно, чтобы это было сделано после того, как вы разместили и состыковали этикетки! То же самое: сделать их меньше, чем панели. Затем установите их свойство Dock на Fill.

Примечание: вы можете состыковать или привязать элемент управления, но не оба! Свойство Anchor игнорируется, если Dock - это нечто иное, чем None. Закрепленная кромка сохраняет постоянное расстояние до той стороны, на которой она закреплена. Если ребро не привязано, размер элемента управления в этом направлении останется неизменным. Если два соответствующих ребра (например, левый и правый) не закреплены, тогда управление будет центрировано в этом направлении.

См: Manage WinForm controls using the Anchor and Dock properties

0

Set SplitContainer.Dock = DockStyle.Fill; если это единственное, что появляется в форме.

+0

Это не помешало проблеме. У меня такая же проблема, что и метки не могут перемещаться над заголовком, но не TreeViews. – DK7195

+0

Ваш SplitContainer & views ... поместите панель на КАЖДОЙ стороне SplitContainer - и установите их в TOP. При необходимости отрегулируйте высоту и поместите свои метки, содержащие названия на этих панелях. Когда панели «состыкованы» с вершиной, вы можете теперь состыковать свои древовидные структуры с каждой стороны раздельного контейнера. Теперь с SplitContainer.Dock = Fill это должно работать.Если метки находятся за пределами splitContainer, тогда да - у вас будут проблемы. Выполнение вышеизложенного просто переместит заголовки внутри SplitContainer, но что еще более важно - с помощью панели позволит древовидным структурам правильно докровать. – Scott

+0

Пример. https://1drv.ms/u/s!AjKkamHEU-ahibRsmahJEW1BGqvEvA – Scott

Смежные вопросы