Размеры отдельных контроллеров связаны друг с другом и размером формы - PullRequest
0 голосов
/ 15 декабря 2011

Я хочу создать одну простую форму с помощью Microsoft Visual Studio, у меня есть один DataGridView и один ListView.Когда я изменяю размер основной формы, я хочу, чтобы размер компонентов изменялся в зависимости от размера основной формы и размера друг друга.

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

Как вы можете видеть на 2 изображениях ниже,Я максимизирую окно, есть разрыв между Datagridview и ListView.Как я могу это исправить?

Image showing the appropriate layout
Image showing the gap that appears as the window is resized

Ответы [ 2 ]

2 голосов
/ 15 декабря 2011

Вам нужно установить Якорь вашей сетки на

//control to the left, this will expand and take most space
listview.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right

//control to the right, this will keep it's size 
grid.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Right

Теперь, если вы хотите, чтобы они всегда имели одинаковый размер;добавьте TableLayoutPanel с 2 столбцами, установленными на 50%, и добавьте к ним listview и grid.(TableLayoutPanel должен быть закреплен, чтобы он расширялся)

0 голосов
/ 15 декабря 2011

Добавьте панель, поместите в нее оба элемента управления. Избавьтесь от границ панели, если они вам не нравятся. Якорь все для углов панели Выберите один элемент управления и установите его стиль закрепления влево или вправо, в зависимости от ситуации, установите стиль закрепления другого для заполнения.

Если вы хотите разделить 50/50, то установите якоря левого элемента управления слева, правая панель справа. (и сверху и снизу для каждого.

Добавить обработчик изменения размера на панель. Определите ширину двух элементов управления и установите их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...