WinForms SplitContainer и его интервал и изменение размера

Кажется, у меня много проблем с настройкой SplitContainer так, как мне нравится. У меня есть следующая форма с именем frmMain:

Скриншот frmMain

В форме Загрузить код мне нужно следующий код:

With MainContainer
    .IsSplitterFixed = True
    .Dock = DockStyle.Fill
    .SplitterDistance = 200
    .FixedPanel = FixedPanel.Panel1
    .Panel1.BackgroundImage = Resources.My.Resources.ResourceFile._001
    .Panel2.BackColor = Color.White
    .Panel2.AutoScroll = True
End With

Когда я запускаю код, я получаю следующее:

frmMain (скомпилировано

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

Моя вторая проблема с SplitContainer - если я изменяю размер моего окна, backgroundImage в Panel1 и белый цвет в Panel2 не корректируются с окном. Я искал все выше и ниже к коду Resize, но не могу его найти. Panel2 имеет пользовательские элементы управления, например. Панель инструментов и загружаются таким образом: MainContainer.Panel2.Controls.Add(Dashboard),

Также возможно, что Panel2 автоматически подстраивается под значение окна, так что у вас есть только горизонтальная полоса прокрутки?

Спасибо, что прочитали мой вопрос, и, надеюсь, вы сможете помочь мне решить мои проблемы с SplitContainer. Хорошего дня.

2 ответа

Решение

У вас есть 2 варианта:

  • использование TableLayoutPanel (как подсказывает @erdomke)
  • Используйте 2 Panel управления

Для 2 панели управления док panel1 в Leftи док panel2 в Fill, Чтобы заполнить panel2 пользовательским элементом управления с изменяемыми размерами, установите для его свойства Dock также значение Fill.

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

Если вы не хотите, чтобы пользователь видел или перемещал разделитель, зачем использовать разделенный контейнер? В качестве альтернативы рассмотрите возможность использования TableLayoutPanel, настроенного с 1 строкой и 2 столбцами. Первый столбец будет иметь абсолютную ширину 200 пикселей, а второй столбец будет иметь ширину 100%. В каждой из двух ячеек вы можете разместить панель, которая закреплена и имеет запас по 0,0,0,0.

Моя вторая проблема с SplitContainer - если я изменяю размер моего окна, backgroundImage в Panel1 и белый цвет в Panel2 не корректируются с окном. ... Также возможно, что Panel2 автоматически подстраивается под значение окна, так что у вас есть только горизонтальная полоса прокрутки?

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

Другие вопросы по тегам