DataGridView中CheckBox列如何判断是否被选中

今天同事遇到一个问题,就是在DataGridView控件中使用了DataGridViewCheckBoxColumn类型的列,但是在运行的时候怎么也获得不到这一列的值,在网上找了很多资料,结果想法都差不多,就是将单元格强转,在获得它的Value值,在我电脑上实验成功,兴奋之余在同事电脑上竟然不可以,搞得人头大,后来继续摸索,在临时窗口中不断的进行测试,后来终于发现一个属性是不断变化的,而且还与CheckBox列所对应的状态相同,于是试了试,果然成功了。代码如下:

使用单元格的Value属性进行判断:

 1 private void button1_Click(object sender, EventArgs e)
 2 {
 3     foreach (DataGridViewRow item in this.dataGridView1.Rows)
 4     {
 5         DataGridViewCheckBoxCell cell = (DataGridViewCheckBoxCell)(item.Cells[0]);
 6         cell.Value = true;
 7         if (Convert.ToBoolean(cell.Value))
 8         {
 9             //被选中状态
10         }
11     }
12 }

使用单元格的EditedFormattedValue属性进行判断,这是最终使用方法:

private void button1_Click(object sender, EventArgs e)
{
   foreach (DataGridViewRow item in this.dataGridView1.Rows)
    {
        if (item.Cells[0].EditedFormattedValue.ToString() == "True")
        {
            //被选中状态
      }
    }
}

 

posted @ 2012-12-25 16:54  尐sんΙ頭  阅读(368)  评论(0编辑  收藏  举报