通过代码将新列添加到Winforms DataGridView

15 .net c# 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() });
}
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

至少有一个DataGridView控件的列没有单元格模板.

Ton*_*ams 15

当您创建新的datagridview列时,它非常空白.您需要设置列的celltemplate,以便它知道要为网格中的单元格显示哪些控件.或者我认为如果你使用一些更强大的类型列(DataGridViewTextBoxColumn),那么你可能没问题.

  • +1:使用强类型列是解决方案 (6认同)

Aar*_*ver 9

问题源于你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() });
        }
Run Code Online (Sandbox Code Playgroud)