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") { //被选中状态 } } }