Статья Как создать и добавить колонку в элементе DataGridView?

Wise

Wise

Active member
19.01.2018
31
9
Создание и добавление колонки в DataGridView

В этой статье показано, как программно создать и добавить колонку в DataGridView.

Создадим новое приложение типа Windows Forms Application на языке c#, после чего добавим на форму элемент управления DataGridView (dgv) и кнопку (Button).



Создание колонки в DataGridView

Перед тем как создать колонку в DataGridView необходимо определить её тип:

DataGridViewTextBoxColumn DataGridViewCheckBoxColumn DataGridViewImageColumn DataGridViewComboBoxColumn DataGridViewButtonColumn DataGridViewLinkColumn Custom Column (пользовательский тип)

Каждый тип имеет свои особенности, например:
  • DataGridViewCheckBoxColumn — колонка используется для отображения значений типа Boolean.
  • DataGridViewTextBoxColumn — позволяет отобразить числовые данные либо строки.
  • DataGridViewLinkColumn — используется для вывода гиперссылок или ссылок на какие-то данные.
После определения типа создаваемой колонки необходимо создать объект выбранного типа.

Например, создадим в элементе DataGridView колонку, которая будет отображать возраст человека. Возраст — это числовое значение, поэтому колонка будет иметь тип DataGridViewTextBoxColumn.

Код создания объекта поместим в обработчике события Button_Click.
Код:
private void button1_Click(object sender, EventArgs e)
{
//создание колонки
DataGridViewTextBoxColumn dgvAge;
dgvAge = new DataGridViewTextBoxColumn();
}
После того как объект создан, можно установить или изменить его свойства. Например, с помощью свойства Name укажем название колонки:
dgvAge.Name = "dgvAge";
С помощью свойства HeaderText установим заголовок колонки, который будет, отображаться в элементе DataGridView.
dgvAge.HeaderText = "Возраст";
Ну и, например, изменим ширину колонки с помощью свойства Width.
dgvAge.Width = 100;
Добавление колонки в DataGridView

Колонка создана, и теперь её нужно добавить в DataGridView. Для этого воспользуемся методом Add, с помощью которого мы поместим ранее созданный объект в коллекцию типа DataGridViewColumnCollection представленную свойством Columns.
Код:
private void button1_Click(object sender, EventArgs e)
{
//создание колонки
DataGridViewTextBoxColumn dgvAge;
dgvAge = new DataGridViewTextBoxColumn();
//установка свойств
dgvAge.Name = "dgvAge";
dgvAge.HeaderText = "Возраст";
dgvAge.Width = 100;
//добавили колонку
dgv.Columns.Add(dgvAge);
//либо
dgv.Columns.Add(new DataGridViewTextBoxColumn() { Name = "dgvAge", HeaderText = "Возраст", Width = 100});
}


С помощью свойства Count убедимся, что колонка действительно была добавлена в DataGridView.
int dgvСolumnsCount = dgv.Columns.Count; //1
Метод Add позволяет не только добавлять уже
созданные объекты (колонки), но и создавать их на лету. Например,
колонку dgvAge можно создать и добавить следующим образом:
dgv.Columns.Add("dgvAge", "Возраст");
В результате будет создана колонка типа (по умолчанию) DataGridViewTextBoxColumn.

Теперь можно изменить свойства добавленной колонки:
Код:
//устанавливаем ширину колонки
dgv.Columns["dgvAge"].Width = 100;
Обратиться к добавленной колонке можно либо по имени, которое задаётся с помощью свойства Name, как в выше приведенном примере, либо с помощью числового индекса, узнать или получить который можно с помощью свойства Index.

Код:
int index = dgv.Columns["dgvAge"].Index;
dgv.Columns[index].Width = 100;
Добавление нескольких колонок

Если Вам необходимо добавить сразу несколько колонок, то в таком случае вместо метода Add вы можете воспользоваться методом AddRange, например:
Код:
//создаём три колонки
DataGridViewTextBoxColumn dgvID = new DataGridViewTextBoxColumn();
dgvID.Name = "dgvID";
DataGridViewButtonColumn dgvBtn = new DataGridViewButtonColumn();
dgvBtn.Name = "dgvBtn";
DataGridViewComboBoxColumn dgvCBox = new DataGridViewComboBoxColumn();
dgvCBox.Name = "dgvCBox";
//добавляем колонки
dgv.Columns.AddRange(new DataGridViewColumn [] {dgvID, dgvBut, dgvCBox});
//либо
dgv.Columns.AddRange(new DataGridViewColumn[] { new DataGridViewTextBoxColumn(){Name = "dgvID"}, new DataGridViewButtonColumn() {Name = "dgvBtn"}, new DataGridViewComboBoxColumn() {Name = "dgvCBox"}});
 
Мы в соцсетях:  ТелеграмВконтактеДзенФейсбукТвиттерЮтуб