C# Winform中DataGridView的DataGridViewCheckBoxColumn使用方法

摘要:
为什么会有这种结果?

下面介绍Winform中DataGridView的DataGridViewCheckBoxColumn使用方法:

DataGridViewCheckBoxColumnCheckBox是否选中

在判断DataGridView中CheckBox选中列的时候,用DataGridViewRow.Cells[0].FormattedValue.ToString()=="True"语句时存在问题,当我们直接点击CheckBox时,结果显示未选中,但是如果我们在点击其他单元格时,结果显示选中。而用DataGridViewRow.Cells[0].EditedFormattedValue.ToString()=="True"语句时不管怎么样是选中的状态。

为什么会有这种结果?

原因:就是FormattedValue是操作提交后的结果,而EditedFormattedValue是当前的结果,不管结果是否已经提交。

所以用DataGridViewRow.Cells[0].EditedFormattedValue.ToString()=="True"判断选中比较合适

if (dgvDownloadList.Rows.Count > 0)
{
   for (int i = 0; i < dgvDownloadList.Rows.Count; i++)
   {
       string _selectValue = dgvDownloadList.Rows[i].Cells["Column1"].EditedFormattedValue.ToString();
       if (_selectValue == "True")
          //如果CheckBox已选中,则在此处继续编写代码
}
}

DataGridViewCheckBoxColumn设置CheckBox默认选中

((DataGridViewCheckBoxCell)dgvDownloadList.Rows[i].Cells["Column1"]).Value = true;

DataGridViewCheckBoxColumn第一时间获取CheckBox的选中状态

当点击或者取消datagridview的checkbox列时,比较难获得其状态是选中还是未选中,进而不好进行其它操作,下面就列出它的解决办法:

CommitEdit:将当前单元格中的更改提交到数据缓存,但不结束编辑模式

dgvDownloadList.CurrentCellDirtyStateChanged += newEventHandler(dgvDownloadList_CurrentCellDirtyStateChanged);
dgvDownloadList.CellValueChanged += newDataGridViewCellEventHandler(dgvDownloadList_CellValueChanged);
 
void dgvDownloadList_CurrentCellDirtyStateChanged(objectsender, EventArgs e)
{
    if(dgvDownloadList.IsCurrentCellDirty)
    {
        dgvDownloadList.CommitEdit(DataGridViewDataErrorContexts.Commit);
    }            
}
 
void dgvDownloadList_CellValueChanged(objectsender, DataGridViewCellEventArgs e)
{
    if (dgvDownloadList.Rows.Count > 0)
    {
        for (int i = 0; i < dgvDownloadList.Rows.Count; i++)
        {
            string _selectValue = dgvDownloadList.Rows[i].Cells["Column1"].EditedFormattedValue.ToString();
            if (_selectValue == "True")
                //如果CheckBox已选中,则在此处继续编写代码
}
     }
}

转载http://www.cnblogs.com/xucan/archive/2010/12/05/1897025.html

免责声明:文章转载自《C# Winform中DataGridView的DataGridViewCheckBoxColumn使用方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Error: testWhileIdle is true, validationQuery not set 使用Druid连接池报错处理notepad++ 关联右键下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Winform开发常用控件之DataGridView的简单数据绑定——自动绑定

DataGridView控件可谓是Winform开发的重点控件,对于数据的呈现和操作非常方便,DataGridView可谓是既简单又复杂。简单在于其已经集成了很多方法,复杂在于可以使用其实现复杂的数据呈现和操作。 本文是入门级培训,先介绍DataGridView的简单应用,复杂的应用在后续的博文中会一一呈上。 DataGridView主要是呈现数据和数据操...

Winform DataGridView CheckBoxColumn c# 单选 解决方案

这个问题由来已久,我最近在工作中也遇到了这个问题,不过属于这个问题比较简单初级的涉及。 发现网上对这个问题的解决方案很多不对,答非所问。 所以这里将我测试成功的解决方案记录下来。 首先,DataGridView CheckBoxColumn 默认是可以多选,不能单选的。 所以无法通过设置来解决,必须通过代码自己控制。 而具体使用哪个事件,哪种逻辑也有很...

winform窗体 控件【菜单和工具栏控件】【容器控件】

  winform的菜单栏和工具栏      1.ContextMenuStrip   -- 右键菜单        可以绑定在任何一个控件上,添加操作快捷键,并可以设置多层       每行相当于一个按钮,输入-可添加分割线       将控件拖入窗体——添加操作名称——找到要进行右键操作的控件的 ContextMenuStrip 属性——委托    ...

关于WINFORM中输入法的设置

关于WINFORM中输入法的设置 (转) johnsuna(阿山NET)的专栏 开发中正好遇到这类问题,网络真好啊:)下面是正文收集,感谢作者的辛勤工作给我们带来的便利. 在WINFORM中我们经常遇到文本输入框中输入法被禁用或老是变全角输入法等问题,经查阅相关资料,现小结如下: (一)Control.ImeMode 属性:获取或设置控件的输入法编辑器...

Winform开发框架之介绍

框架已经正式改名为:YESWin开发框架, 最新资料请前往:YESWinform 简介 - YES快速开发平台框架 (yesdotnet.com)  winform开发框架,尽量减少程序员在界面中的代码量和工作量,Model自动生成,界面以及控件自动生成,简单的逻辑自动生成。自动生成的界面已经实现简单逻辑增删改查功能。 其他开发框架都已经或多火烧实现了这些...

Winform下KeyDown,KeyPress,KeyUp事件的总结(转)

原文: http://www.cnblogs.com/xiashengwang/archive/2011/09/15/2578798.html 在winform程序中,经常会用到这几个事件用于控制数字输入,按键动作等操作,但一直没有完全弄清楚他们之间的区别和联系,到底什么时候用哪一个事件合适,闲暇无事,做了一个小小的总结,以免以后犯糊涂。 1) 这三个事件...