Как изменить размер управления datagridview при изменении размера формы
Я нашел много вопросов о том, как изменить размер формы, когда дочерний элемент управления изменяет размер, но я пытаюсь сделать что-то гораздо проще (возможно, простые люди даже не спрашивают об этом: |)
Я хотел бы автоматически изменить размер ширины datagridview, чтобы заполнить ширину формы. После простого размещения datagridview в форме, сетка остается того же размера, когда форма изменяется. Это происходит даже тогда, когда я использую небольшую привязку с постоянной дистанцией, соединяющую элемент управления с границами формы.
Нужно ли обрабатывать событие form.resize каких-то ролей или есть свойство, которое я могу установить в VS?
Ответы
Ответ 1
Используйте привязку управления. Установите свойство Anchor
вашего GridView
на Top, Left, Right
и оно изменит размер с помощью контейнера. Если ваш GridView
помещен внутри некоторого контейнера (ex Panel
), тогда Panel
также должен быть привязан.
Ответ 2
Задайте свойство вашего DataGridView:
Anchor: Top,Left
AutoSizeColumn: Fill
Dock: Fill
Ответ 3
Установите свойство привязки элемента управления для привязки ко всем сторонам родительского - верхнего, нижнего, левого и правого.
Ответ 4
У вас есть два варианта:
- Вариант один, Якорь
- Вариант второй, Dock
Ищите оба свойства и выясните, какой из них подходит вашим потребностям.
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.anchor.aspx
и
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.dock.aspx
Ответ 5
Свойство "Anchor" существует для любого контейнера: формы, панели, группы и т.д.
Вы можете выбрать одну сторону, например, слева или на всех четырех сторонах.
Якорь означает расстояние между выбранной стороной (сторонами), а край контейнера останется неизменным даже при изменении размера.
Например, A datagridview, dgv1
, находится в середине Form1
. Ваш "Якорь" - левая и верхняя стороны dgv1. Когда приложение запускается и происходит изменение размера, либо с разных разрешений экрана, либо с изменением размера формы, верхняя и левая стороны dgv1
будут соответственно изменяться, чтобы поддерживать их расстояние от края From1
. Нижняя и правая стороны не будут.
Ответ 6
В конструкторе формы вы можете создать обработчик событий следующим образом:
this.SizeChanged(frm_sizeChanged);
Затем создайте обработчик событий, который соответствующим образом изменит размер сетки, например:
private void frm_sizeChanged(object sender, EventArgs e)
{
dataGrid.Size = new Size(100, 200);
}
Замена этих чисел тем, что вы хотите.
Ответ 7
Если я не понимаю, что вы просите, вы можете сделать это в свойствах для вашего вида сетки данных. Вам нужно установить свойство Anchor в стороны, на которые вы хотите заблокировать.
Ответ 8
Для меня привязка работает только в том случае, если я устанавливаю его на все четыре стороны:
Анкеровка: верхняя, нижняя, левая, правая
Установка привязки только к левому, нижняя часть перемещает весь объект, когда форма изменяется в нижней части, слева. Установка всех четырех размеров действительно изменяет размер объекта, когда размер родителя изменяется.
Ответ 9
Вам нужно выбрать "Заполнить" в свойстве Dock.
Ответ 10
Если вы хотите показать полный текст заголовков
это автоматически изменит размер столбцов, чтобы заголовки отображали полный текст заголовка.
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
Для режима док-станции
Если вы хотите показать режим док-станции в своей панели или форме.
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
Ответ 11
установите свойство Dock для datagridview в макете к одному из этих свойств: сверху, слева, внизу, справа. ок?