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,但是里面的列为空,应该怎么解决呢?
请大家赐教,谢谢!

解决方案 »

  1.   


    数据读出来是正确的 没问题,问题是出在new出了DataGridViewRow,但是它的列是为空的情况下就给值,导致报错
    所以我请教的是如何创建那个列!
      

  2.   


     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控件来编辑列的
      

  3.   

    DataGridViewRow 测试行 = DataGridView1.Rows.SharedRow(0) ;测试行.Cells[0].Value = "蛇年马月猴日龙时";
    报错是正确的,新建行实例谁知道有多少列?
      

  4.   

    都试过了,还是不行啊!!
    你试的代码是怎样的了? 动态添加列就是那样的,你也可以在博客园搜索动态添加列,这样的文章很多的,如:
    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