Обычная практика — SplitContainer

#c# #.net #winforms #splitcontainer

#c# #.net #winforms #разделяемый контейнер

Вопрос:

Является ли обычной практикой иметь элемент управления SplitContainer, а затем добавлять к нему другой SplitContainer, а затем добавлять еще один и еще …?

Просто кажется, что должен быть способ получше, я имею в виду, как только вы получаете примерно 3 или 4 SplitContainers, вам буквально не хватает места для работы в режиме конструктора.

Ответ №1:

Если вы обнаружите, что вкладываете слишком много разделяемых контейнеров, пришло время опуститься на уровень ниже и посмотреть на сам элемент управления разделением. Предположим на минуту, что мы говорим о куче горизонтальных строк, подобных этой:

  ----------- 
| Content 1 |
 ----------- 
| Content 2 |
 ----------- 
| Content 3 |
 ----------- 
  

Возьмите содержимое вашего раздела Content 1 и поместите его в какой-нибудь контейнер, например панель. Прикрепите эту панель к верхней части формы. Теперь перетащите разделяющий элемент управления в форму. Вероятно, вначале он будет ориентирован вертикально, поэтому измените его привязку на «Top», и он будет прикрепляться к нижней части контейнера Content 1. Теперь добавьте еще один контейнер для хранения содержимого 2, закрепите его вверху. Добавьте еще один разделитель и закрепите его вверху. Наконец, добавьте содержимое «Content 3» на панель и установите для его закрепления значение «Заполнить». Таким образом, вы можете собрать столько разделителей, сколько захотите.

Установив разделители вверху или внизу, они во время выполнения определят, кто их соседи и как изменить их размер. Это поведение полностью контролируется «Z-порядком» элементов управления, который для большинства пользователей должен примерно переводиться как «порядок добавления элементов управления в форму». Вы можете увидеть это и управлять им в представлении «Структура документа» (Просмотр -> Другие окна -> Внешний вид документа или Ctrl-W, U). Поэкспериментируйте немного с пустой формой, и все это обретет смысл.

Комментарии:

1. Спасибо @Mel, работать с этим оказалось намного проще и быстрее, чем с элементом управления SplitContainer . 🙂

2. Я все еще использую SplitContainers для большинства вещей, поскольку они довольно удобны для простых случаев. Однако, когда вы начинаете работать с 3 или 4 панелями, они не совсем справляются с этим.

Ответ №2:

Нет, именно так это и работает.

Скажите своему боссу, что вам нужен монитор большего размера.

Ответ №3:

Вы могли бы использовать TableLayoutContainer.