我用datagridview控件后
选中了一行
然后使用datagridview.selectedrows[0].cells[8].value.tostring()获取的之一直为null
这是什么原因啊

解决方案 »

  1.   

    不好意思自己UP一下
    刚接触C#1周,以前学c++的,请各位懂帮帮忙
      

  2.   

    原因是这样的:你点击cell单元的话,选择的只是这个单元,而此时的selectedRows 为空,要不就是行数为空。
    当你点击dataGrid左边的行标时,此时的selectedRows 才不为空。如果要使用某一个单元格的内容的话,可这样使用:
    string aa = "";           if (dataGridView1.SelectedRows != null && dataGridView1.SelectedRows.Count>0)
               {
                   aa = dataGridView1.SelectedRows[0].Cells[你的列的索引].Value.ToString();
               }
               else
               {
                   aa = dataGridView1.SelectedCells[0].Value.ToString();
               }
      

  3.   

    如果行数为空,也就为0的话,
    运行这句就会报异常。。
    datagridview.selectedrows[0].cells[8].value.tostring()
    应该是其他原因
      

  4.   

    不是这样子做的,你要放个放个绑定数据源BindingSource进去,再将表格的数据源设置为该绑定数据源BindingSource,然后读绑定数据源BindingSource的当前行就行了:BindingSource.Current.Row这样,不管是选中行头或选中某一格,绑定数据源的当前行都是指向表格当前焦点所在的行