如果需要在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来获取属性值
http://www.cnblogs.com/huomm/archive/2008/03/14/1106302.html
分享到:
相关推荐
winform DataGridView表头带CheckBox全选;winform DataGridView表头带CheckBox全选
在窗体应用程序中,使用DataGridView中动态加入CheckBox列,并处理业务
在DataGridView添加CheckBox列,且只允许单选
C#_winform_DataGridView_checkbox复选框_实现单选效果
Winform DataGridView 移动列
手动绘制winfrom DataGridView的列头CheckBox 实现单击列头的CheckBox全选和不全选!
C#winform DataGridView checkbox复选框 实现单选效果,系统默认的是界面中多选,下午没事,做个单选的效果,同时复习下datagridview的常用知识,包含dantGridVIew的常用操作内容,注意事项,代码有点乱,学习。
C# winform datagridview 动态列值计算
winform DataGridView 多列行头和单元格合并, datagridview的自定义拓展控件,使用很方便
重写datagridview控件,实现其能够在不同行,相同列,相同内容的合并功能
winform DataGridView 合计 行 控件 winform DataGridView 合计 行 控件
C#winform datagridview 中显示HTML内容,方便进行富文本显示。
C# winform datagridview 里的下拉框中 既可以从下拉框里选择数据,也可以让客户自己手动往里输入数据,
基于C#的WinForm中DataGridView控件操作汇总
winform实现表头的多层,大于等于2层的
winform DataGridView控件 实现右击选中行,右击首列弹窗增删行
C# winform DataGridView 的18种常见属性,主要介绍了datagridview的一些常见属性和大家日常不太用到的一些属性。
winForm扩展DataGridView控件实现一列多操作(如查看详情、修改、删除等)按钮,使用VB.NET语言通过扩展DataGridViewButtonCell单元格,在单元格内画按钮的方式来实现。具体效果请看我的博文...
详细介绍了该功能的实现,并带有效果图和Form 页面 代码详细 ,可直接Copy