winform的DataGridView中捕捉CheckBox ( DataGridViewCheckBoxCell ) 列的状态改变
2016-11-16 16:43
501 查看
如果需要在winform 的数据控件datagridview 中嵌入checkbox列 ( DataGridViewCheckBoxCell ),
在程序的执行中有可能需要像纯粹的checkbox控件的selectedindexchanged事件一样的事件来捕捉其状态的改变
我觉得比较好的方式是用datagridview 控件的cellcontentclick事件 例如:
如果嵌入的 DataGridViewCheckBoxCell 列在第一列,判断状态并添加处理事件可以为:
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0 && e .RowIndex != -1)
{
//获取控件的值
MessageBox.Show(this.dataGridView1.Rows[e.RowIndex].Cells[0].EditedFormattedValue.ToString());
//或者可以做其他事件处理程序
}
}
需要注意的是执行此事件是需要屏蔽其他datagridview单元格的cellcontentclick事件 ,即让除了 DataGridViewCheckBoxCell 列之外的所有列的ReadOnly=True;
在获取datagridview中checkbox列的值得时候 一定要用 EditedFormattedValue属性,此属性获取的是编辑以后数值 而value 和FormattedValue返回的往往是编辑以前的数值,而其重复单击的时候往往会出现错误(无法确定是编辑前还是编辑后的数值: 主要原因是焦点问题,需要先移动焦点使datagridview获取更改后的数据在区获取他 就没有问题了,所以以后用去获取数据前先要移出datagridview中的焦点!!!),所以一定要用EditedFormattedValue来获取属性值
在程序的执行中有可能需要像纯粹的checkbox控件的selectedindexchanged事件一样的事件来捕捉其状态的改变
我觉得比较好的方式是用datagridview 控件的cellcontentclick事件 例如:
如果嵌入的 DataGridViewCheckBoxCell 列在第一列,判断状态并添加处理事件可以为:
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0 && e .RowIndex != -1)
{
//获取控件的值
MessageBox.Show(this.dataGridView1.Rows[e.RowIndex].Cells[0].EditedFormattedValue.ToString());
//或者可以做其他事件处理程序
}
}
需要注意的是执行此事件是需要屏蔽其他datagridview单元格的cellcontentclick事件 ,即让除了 DataGridViewCheckBoxCell 列之外的所有列的ReadOnly=True;
在获取datagridview中checkbox列的值得时候 一定要用 EditedFormattedValue属性,此属性获取的是编辑以后数值 而value 和FormattedValue返回的往往是编辑以前的数值,而其重复单击的时候往往会出现错误(无法确定是编辑前还是编辑后的数值: 主要原因是焦点问题,需要先移动焦点使datagridview获取更改后的数据在区获取他 就没有问题了,所以以后用去获取数据前先要移出datagridview中的焦点!!!),所以一定要用EditedFormattedValue来获取属性值
相关文章推荐
- 如何在winform的 DataGridView 中捕捉 CheckBox ( DataGridViewCheckBoxCell ) 列的状态改变
- 如何在winform的 DataGridView 中捕捉 CheckBox ( DataGridViewCheckBoxCell ) 列的状态改变 .
- 如何在winform的 DataGridView 中捕捉 CheckBox ( DataGridViewCheckBoxCell ) 列的状态改变
- 如何在winform的 DataGridView 中捕捉 CheckBox ( DataGridViewCheckBoxCell ) 列的状态改变
- 如何在winform的 DataGridView 中捕捉 CheckBox ( DataGridViewCheckBoxCell ) 列的状态改变
- 如何在winform的 DataGridView 中捕捉 CheckBox ( DataGridViewCheckBoxCell ) 列的状态改变
- 如何在winform的 DataGridView 中捕捉 CheckBox ( DataGridViewCheckBoxCell ) 列的状态改变
- DataGridView 中捕捉 CheckBox ( DataGridViewCheckBoxCell ) 列的状态改变
- C# WinForm 实现DataGridView中DataGridViewCheckBoxCell的变通单一勾选
- C# WinForm 实现DataGridView中DataGridViewCheckBoxCell的变通单一勾选
- winform 下 从DataGridView 的 DataGridViewCheckBoxCell 列取值和保存问题
- winform 下 从DataGridView 的 DataGridViewCheckBoxCell 列取值和保存问题
- dataGridView中Checkbox状态改变,后台读取未发生变化
- DataGridView中DataGridViewCheckBoxCell点击选中状态的理解
- winform 制定DataGridViewTextColumn列(更改DataGridView的Cell的状态很有用)
- zTree之checkbox选中事件---获取状态改变的结点
- winform中datagridview 在单元格选中状态下(非编辑状态)输入一个字符产生重复的问题
- DataGridView 中的 DataGridViewCheckBoxColumn 的值得改变 需要实现的功能
- jquery判断checkbox是否选中及改变checkbox状态
- winform程序中DataGridView、DataGridViewComboBoxCell