xgr 发表于 2011-11-17 20:46:02

奇怪的dataGridView取单元格值的问题

先贴上代码
private void button11_Click(object sender, EventArgs e)
      {
            string selectedserialnumber = "";
            int gg = dataGridView1.Rows.GetRowCount(DataGridViewElementStates.None);
            for (int i = 0; i < gg; i++)
            {
                if (dataGridView1.Rows.Cells.Value.ToString() == "True")
                {
                  selectedserialnumber = selectedserialnumber + "," + i.ToString();
                }
            }
            MessageBox.Show("选择的行是" + selectedserialnumber);
      }dataGridView的首列是checkBox,在用For取值时提示错误如图:
点击按钮要求返回checkBox选择为True的行号。

如果不用for循环,则不会出错。
这个问题不知道错在哪里?请大家帮忙看看,谢谢!

sieben 发表于 2011-11-17 23:24:39

       for (int i = 0; i < gg; i++)
            {
                if (dataGridView1.Rows.Cells.Value != null && dataGridView1.Rows.Cells.Value.ToString() == "True")
                {
                  selectedserialnumber = selectedserialnumber + "," + i.ToString();
                }
            }

xgr 发表于 2011-11-18 08:22:18

问题解决了,原来CheckBox列值有Null值;
难道这列值不选择的时候为Null,而不是False,我的dataGridView1是连接了数据库的,而数据库里此列设置了默认值为True,不会存在Null,这里就有点不明白了。
谢谢楼上。

sieben 发表于 2011-11-18 08:59:51

通常是后面没有初始化的行; 或许 for (int i = 0; i < gg-1; i++) 就可以了,
页: [1]
查看完整版本: 奇怪的dataGridView取单元格值的问题