解决方案 »

  1.   

     try {
                     dgv[0, 0].Value = "aa";//报错,索引超出范围
                     MessageBox.Show(dgv[0, 0].Value.ToString());
                 }
                 catch (Exception ex){
                     MessageBox.Show(ex.Message);
                 }
    你看看dgv的行数对不对,没有行索引当然不对。
      

  2.   


    就是想问这个问题,我把DataTable的行和列都初始化了,然后绑定数据源给dgv了,这样照道理不是dgv的行和列也都有对应的列数和行数了吗??就是不知道怎么给dgv初始化行数啊!
      

  3.   


    dgv.Rows.Add();
      try {
                     dgv[0, 0].Value = "aa";//报错,索引超出范围
                     MessageBox.Show(dgv[0, 0].Value.ToString());
                 }
                 catch (Exception ex){
                     MessageBox.Show(ex.Message);
                 }
      

  4.   


    dgv.Rows.Add();
      try {
                     dgv[0, 0].Value = "aa";//报错,索引超出范围
                     MessageBox.Show(dgv[0, 0].Value.ToString());
                 }
                 catch (Exception ex){
                     MessageBox.Show(ex.Message);
                 }

    不让执行dgv.Rows.Add();报错信息为:当控件被数据绑定时,无法以编程方式向DataGridView的行集合中添加行。
      

  5.   

    DataGridView能当作容器传递数据吗完全可以,因为任何控件都是一个类型。是类型那么他的对象就可以承载数据。
      

  6.   

    突然想起webfrom没有datagridview,你断点跟踪一下,看看你给dgv赋值后,是否dgv有值,另外再看一下你的dgv是否允许动态绑定列。
      

  7.   

    谢谢hr3773和版主libinguest!
    我最后在form里实际添加了一个DataGridView控件,然后就没问题了。不过为什么不在窗口添加控件只在代码行实例化这个控件就无法绑定数据,原理是什么还是没搞懂。如果有大侠看到帖子了,而且知道咋回事儿,就给顺便解释下吧,谢谢了!
      

  8.   

    在数据显示完成后int gl = dgv.Columns.Count;//?????????????为啥就是得不到DataGridView的列数
      

  9.   

    后来又问人了,这里必须加一句this.Controls.Add(dgv);不把DataGridView加到窗体控件集合中,就始终会报错。