博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Winform中DataGridView的DataGridViewCheckBoxColumn使用方法(选中与选不中)
阅读量:5924 次
发布时间:2019-06-19

本文共 1993 字,大约阅读时间需要 6 分钟。

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

 

DataGridViewCheckBoxColumn CheckBox是否选中

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

为什么会有这种结果?

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

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

View Code
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 += new EventHandler(dgvDownloadList_CurrentCellDirtyStateChanged); dgvDownloadList.CellValueChanged += new DataGridViewCellEventHandler(dgvDownloadList_CellValueChanged);   void dgvDownloadList_CurrentCellDirtyStateChanged(object sender, EventArgs e) {     if (dgvDownloadList.IsCurrentCellDirty)     {         dgvDownloadList.CommitEdit(DataGridViewDataErrorContexts.Commit);     }             }   void dgvDownloadList_CellValueChanged(object sender, 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已选中,则在此处继续编写代码         }      } }

 

转载于:https://www.cnblogs.com/blosaa/archive/2013/03/06/2946005.html

你可能感兴趣的文章
一些不常用的命令
查看>>
堆排序
查看>>
Linux网络基本管理
查看>>
linux下进制转换的shell脚本
查看>>
【思科珍藏】PPPoE实验(模拟小区用户拨号上网)
查看>>
第七章:文件系统管理
查看>>
安卓手机如何快速投屏到windows(10/8.1/7)电脑上
查看>>
组策略系列(一)概览
查看>>
ios网络编程开发浅析(一)
查看>>
异地备份的最佳实践与注意事项
查看>>
实验:通过远程桌面登录服务器
查看>>
html表单属性使用
查看>>
Linux 软Raid创建方法:
查看>>
有类路由选择
查看>>
Linux下安装Oracle11G R2详解
查看>>
asp.net中Button按钮点击两次才执行Onclick事件的原因
查看>>
对于可恢复情况使用受检异常,对于编程错误使用运行时异常(58)
查看>>
spring mvc配置 + dbcp数据源+jdbcTemplate
查看>>
Tomcat的Session共享(复制)的几种实现方案
查看>>
分布式大型互联网企业架构!
查看>>