特定の月の各日に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)を使用する場合は、問題ないかもしれません。
この問題は、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() });
}
最初に、テキストボックス列かコンボボックス列かを指定する必要があります。これを試してみてください。
var daysCount = DateTime.DaysInMonth(DateTime.Now.Year, month);
for (int i = 1; i <= daysCount; i++)
{
dataGridView1.Columns.Add(new DataGridViewTextBoxColumn() { HeaderText = i.ToString() });
}
テーブルを設定し、必要な列を追加します。次に使用します:
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();
}
最初の行は1ではなく0です。おそらく、エラーはこれらです。