Добавление новых столбцов в Winforms DataGridView с помощью кода
Я пытаюсь добавить N количество столбцов за каждый день месяца:
var daysCount = DateTime.DaysInMonth(DateTime.Now.Year, month);
for (int i = 1; i <= daysCount; i++)
{
dataGridView1.Columns.Add(new DataGridViewColumn() { HeaderText = i.ToString() });
}
Я получаю эту ошибку:
Как минимум один из DataGridView контрольные столбцы не имеют ячейки шаблон.
Ответы
Ответ 1
Когда вы создаете новый столбец datagridview, он довольно пуст. Вам нужно будет установить celltemplate столбца, чтобы он знал, какие элементы управления отображаются для ячеек в сетке. В качестве альтернативы я думаю, что если вы используете некоторые из более сильных типизированных столбцов (DataGridViewTextBoxColumn), тогда вы можете быть в порядке.
Ответ 2
Проблема связана с тем, что ваш DataGridViewColumn.CellTemplate
не установлен.
Для этого сценария должен быть DataGridViewTextBoxCell
как CellTemplate
.
var daysCount = DateTime.DaysInMonth(DateTime.Now.Year, 1);
for (int i = 1; i <= daysCount; i++)
{
dataGridView1.Columns.Add(new DataGridViewColumn() { HeaderText = i.ToString(), CellTemplate = new DataGridViewTextBoxCell() });
}
Ответ 3
Сначала нужно указать, является ли столбец текстового поля или столбца со списком
Попробуйте это, он будет работать
var daysCount = DateTime.DaysInMonth(DateTime.Now.Year, month);
for (int i = 1; i <= daysCount; i++)
{
dataGridView1.Columns.Add(new DataGridViewTextBoxColumn() { HeaderText = i.ToString() });
}
Ответ 4
установите таблицу и добавьте необходимые столбцы.
затем используйте:
var daysCount = DateTime.DaysInMonth(DateTime.Now.Year, 1);
for (int i = 0; i <= daysCount; i++)
{
i = dataGridView1.Rows.Add(new DataGridViewRow());
dataGridView1.Rows[i].Cells["YourNameCell"].Value = i.ToString();
}
Строка Frist равна 0, а не 1. Вероятно, ваша ошибка.