DataGridView пример программного добавления ячеек.
Язык программирования C#Здесь я приведу пример программного добавления ячеек, а соответственно столбцов и строк.
Это может понадобится тогда, когда ну очень надо заполнить DataGridView и при этом совсем не нужен DataSet.
В моём случае, чаще всего это требуется когда необходимо заполнить какие либо параметры, которые могут отличаться для одного и того же объекта, скажем их просто может быть разное количество, вдобавок они могут быть разного типа, и т.п.
Итак, пример:
DataGridViewColumn col = new DataGridViewColumn();
col.HeaderText = "Параметр";
col.ReadOnly = true;
DataGridViewColumn col1 = new DataGridViewColumn();
col1.HeaderText = "Значение";
col1.ReadOnly = false;
dataGridView1.Columns.Add(col);
dataGridView1.Columns.Add(col1);
DataGridViewCell cel1 = new DataGridViewTextBoxCell();
DataGridViewCell cel2 = new DataGridViewTextBoxCell();
cel1.Style.BackColor = Color.LightGray;
DataGridViewRow row = new DataGridViewRow();
cel1.Value = "Штуки";
cel2.Value = "";
row.Cells.AddRange(cel1, cel2);
dataGridView1.Rows.Add(row);
cel1 = new DataGridViewTextBoxCell();
cel2 = new DataGridViewTextBoxCell();
cel1.Style.BackColor = Color.LightGray;
row = new DataGridViewRow();
cel1.Value = "Коэф.";
cel2.Value = "";
row.Cells.AddRange(cel1, cel2);
dataGridView1.Rows.Add(row);
cel1 = new DataGridViewTextBoxCell();
cel2 = new DataGridViewTextBoxCell();
cel1.Style.BackColor = Color.LightGray;
row = new DataGridViewRow();
cel1.Value = "Вес";
cel2.Value = "";
row.Cells.AddRange(cel1, cel2);
dataGridView1.Rows.Add(row);
cel1 = new DataGridViewTextBoxCell();
cel2 = new DataGridViewTextBoxCell();
cel1.Style.BackColor = Color.LightGray;
row = new DataGridViewRow();
cel1.Value = "Штрих-Код";
cel2.Value = "";
row.Cells.AddRange(cel1, cel2);
dataGridView1.Rows.Add(row);
Вот, как это выглядит в результате:

Комментарии:
Добавить строчками выше. Для красоты (AutoSizeColumnsMode AutoSizeRowsMode)
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
Ответить
при добавлении столбца в dataGridView выпадает следующая ошибка:
Column cannot be added because its CellType property is null.
Код:
DataGridViewColumn col1 = new DataGridViewColumn();
col1.HeaderText = «Наименование»;
col1.Width = 300;
dataGridView1.Columns.Add(col1);
Теперь уже не выяснить почему тот пример у мена работал, но сейчас в 2008 попробовал то-же самое действительно ошибка.
Чтобы правильно работало надо задавать шаблон ячейки у столбца вот так:
DataGridViewCell cell = new DataGridViewTextBoxCell();
DataGridViewCell cell1 = new DataGridViewTextBoxCell();
DataGridViewColumn col = new DataGridViewColumn();
col.HeaderText = "Параметр";
col.ReadOnly = true;
col.CellTemplate = cell;
DataGridViewColumn col1 = new DataGridViewColumn();
col1.HeaderText = "Значение";
col1.ReadOnly = false;
col1.CellTemplate = cell1;
dataGridView1.Columns.Add(col);
dataGridView1.Columns.Add(col1);
Вот так у меня всё заработало. Ответить
Работа с Postgresql в C#
Не так давно занялся разработкой приложения на C# работающего на базе PostreSQL, появилась информаци (читать далее...)
1534Передача параметров между формами в C#
Часто возникает необходимость передать определённые параметры между формами в одном приложении, напр (читать далее...)
1009Работа с MySQL в C#
Надеюсь данная публикация не даст читателям повторить мои ошибки и поможет сделать изначально правил (читать далее...)
718Сортировка списка (List) в C#
На днях понадобилось сортировать списки, удивительно, на сколько это оказалось просто. Допустим, име (читать далее...)
604OpenXML - Пример создания Excel файла на C#
В данной публикации приведен пример генерации Excel файла при помощи библиотеки OpenXML. Отличие это (читать далее...)
486
Работает! VS C# 2010 програмное заполнение DataGridView Удачи!