C# - DataGridView - 在不被告知的情况下突破for循环

时间:2014-07-29 16:27:20

标签: c# winforms visual-studio user-interface datagridview

我有以下代码:

for (int i = 0; i < COLUMNS.Count; i++)
{
    DataGridViewColumn column = new DataGridViewColumn()
    {
        Name = COLUMNS.ElementAt(i).Key,
        HeaderText = COLUMNS.ElementAt(i).Value,
        Width = 60
    };
    operationsDataGridView.Columns.Add(column);
}

我希望它足够清楚,我正在遍历列名列标题的词典,并将它们添加为 DataGridViewColumn 实例到DataGridView。


然而,程序只循环一次,它应循环 9 次(我已经调试过了,而COLUMNS.Count实际上是 9

因此,只添加了第一列,如图所示:

One Column Added

对于调试输出,会出现以下奇怪的消息:

Debugging Output

我确定 它可以解决此问题


有趣的事实!

如果我将代码更改为:

for (int i = 0; i < COLUMNS.Count; i++)
{
    operationsDataGridView.Columns.Add(COLUMNS.ElementAt(i).Key,
                                       COLUMNS.ElementAt(i).Value);
}

(我认为,基本上相同),该程序精细 !!

Many Columns Added

1 个答案:

答案 0 :(得分:1)

我能够在我的结尾重现这个错误,但我也得到了一个例外,“至少有一个DataGridView控件的列没有单元格模板。”

如果您将循环更改为DataGridViewColumn column = new DataGridViewTextBoxColumn(),它可能会起作用(至少在我的末尾修复它)。看起来.add方法具有两个参数默认为此类型的列。