Статья C# DataGridView свойство ColumnCount

Свойство ColumnCount элемента управления DataGridView
Свойство ColumnCount элемента управления DataGridView обычно используется для решения следующих задач:

1. Получение количества колонок в DataGridView.

C#:
int curColumnCount = dataGridView1.ColumnCount;
По сути, является сокращенной записью вызова свойства Count.

C#:
int curColumnCount = dataGridView1.Columns.Count;
2. Создание и добавление новых колонок в DataGridView.

C#:
//создаём и добавляем пять колонок
dataGridView1.ColumnCount = 5;
int dgvColsCount = dataGridView1.ColumnCount; //5
Обратите внимание на то, что в данном примере указанное количество колонок создаётся и добавляется только при выполнении следующих условий:

  • коллекция Columns пустая (dataGridView1.Columns.Count == 0)
  • DataGridView не привязан к источнику данных (dataGridView1.DataSet == null)
Это значит, что выше приведенный код не равен следующему коду:

C#:
for (int i = 0; i  5; i++)
{
dataGridView1.Columns.Add("", "");
}
//текущее кол-во колонок в DataGridView
int dgvColsCount = dataGridView1.Columns.Count; //5
Если хотя бы одно из этих условий не выполняется, то получаем неожиданный результат. Например, представим, что у нас в элементе управления DataGridView содержится четыре колонки.

27510


Теперь посмотрим, как установленное значение влияет на результат работы свойства ColumnCount.

1). Если значение установленное свойству ColumnCount меньше текущего количества колонок в элементе управления DataGridView (value < dataGridView1.Columns.Count), то количество столбцов уменьшается до заданного свойству значения.

Например, добавим к четырём колонкам ещё одну.

C#:
dataGridView1.ColumnCount = 1;
27511


В результате остается только одна колонка, а все остальные удаляются.

2). Если значение установленное свойству ColumnCount больше текущего количества колонок в DataGridView (value > dataGridView1.Columns.Count), то количество столбцов увеличивается на разницу между двумя этими значениями.

Например, к четырём колонкам добавим ещё пять колонок.

C#:
dataGridView1.ColumnCount = 5;
В результате добавляется только одна колонка.

27512


3). Если установленное значение равно текущему количеству колонок в элементе DataGridView (value == dataGridView1.Columns.Count), то количество столбцов не изменяется.

Например, к текущим четырем колонкам добавим ещё четыре колонки.

C#:
dataGridView1.ColumnCount = 4;
В результате в DataGridView по-прежнему содержится четыре колонки.

4). Если присвоить свойству значение ноль, то вызывается метод Clear и коллекция Columns полностью очищается.

C#:
int curColCount = dataGridView1.ColumnCount //4
dataGridView1.ColumnCount = 0;
curColCount = dataGridView1.ColumnCount; //0
5). Отрицательное значение всегда приводит к выбросу исключения.

C#:
//исключение
dataGridView1.ColumnCount = -1;
6). Если добавление колонок выполняется после выполнения привязки, то в результате возникает исключение с текстом: &#171;ColumnCount property cannot be set on a data-bound DataGridView control&#187;.

Например, создадим таблицу типа DataTable и привяжем её к элементу управления DataGridView.

C#:
//создаёт таблицу
DataTable dt = new DataTable();
//создаёт 3 колонки
dt.Columns.Add("id", typeof(int));
dt.Columns.Add("name", typeof(string));
dt.Columns.Add("age", typeof(int));
//привязка
dataGridView1.DataSource = dt;
//пытаемся добавить ещё 2 колонки, получаем исключение
dataGridView1.ColumnCount = 2;
7). Если добавление колонок выполняется перед выполнением привязки, то ошибка не возникает:

C#:
//добавили 2 колонки
dataGridView1.ColumnCount = 2;
DataTable dt = new DataTable();
//...
dataGridView1.DataSource = dt;
27513


В результате в элементе DataGridView содержится пять колонок.

Читайте также:
 
Мы в соцсетях:

1 августа стартует курс «Основы программирования на Python» от команды The Codeby

Курс будет начинаться с полного нуля, то есть начальные знания по Python не нужны. Длительность обучения 2 месяца. Учащиеся получат методички, видео лекции и домашние задания. Много практики. Постоянная обратная связь с кураторами, которые помогут с решением возникших проблем.

Запись на курс до 10 августа. Подробнее ...