日期:2014-05-17  浏览次数:20994 次

winform中datagridvoew添加列的问题
for (int i = 0;i<listview.Items.Count;i++) 
{
    this.dataGridView1.Rows.Add();
    DataGridViewRow row = new DataGridViewRow();
    row.Cells[0].Value = text;
    row.Cells[1].Value = listview.Items[i].Text;
    this.dataGridView1.Rows.Add(row);            
}

这样运行到了"row.Cells[0].Value = text;"报了这样的错::"索引超出范围。必须为非负值并小于集合大小。"
查询了一下原因,发现是实例化了DataGridViewRow,但是里面的列为空,应该怎么解决呢?
请大家赐教,谢谢!

------解决方案--------------------
引用:
Quote: 引用:


 DataGridView1.Columns.Add("bjbh", "表计编号") '添加列名及列的显示名称
        DataGridView1.Columns.Add("lh", "楼号")
        DataGridView1.Columns.Add("dyh", "单元号")
        DataGridView1.Columns.Add("hh", "户号")
        DataGridView1.Columns.Add("azwz", "安装位置")
        DataGridView1.Columns.Add("bjlx", "表计类型")
        DataGridView1.Columns.Add("gdz", "高档值")

同时你也可以通过手动通过右键DataGridView控件来编辑列的


引用:
DataGridViewRow 测试行 = DataGridView1.Rows.SharedRow(0) ;测试行.Cells[0].Value = "蛇年马月猴日龙时";

报错是正确的,新建行实例谁知道有多少列?


都试过了,还是不行啊!!

你试的代码是怎样的了? 动态添加列就是那样的,你也可以在博客园搜索动态添加列,这样的文章很多的,如:
http://www.google.ee/search?q=site%3Acnblogs.com%20C%23%20DtagridView%E5%8A%A8%E6%80%81%E6%B7%BB%E5%8A%A0%E5%88%97