这几天做项目的时候碰到了个小问题,在datagridview中实现对checkbox列的全选和反选功能。代码如下

             //全选
             if (dataGridView1.Rows.Count > 0)
                foreach (DataGridViewRow dgvr in dataGridView1.Rows)
                {
                    (dgvr.Cells["checkbox列名称"] as DataGridViewCheckBoxCell).Value = true;
                }
             //反选
              if(dataGridView1.Rows.Count>0)
                foreach (DataGridViewRow dgvr in dataGridView1.Rows)
                {
                    (dgvr.Cells[" checkbox列名称 "] as DataGridViewCheckBoxCell).Value = (bool)((dgvr.Cells["DeleteFile"] as DataGridViewCheckBoxCell).Value) ? false : true;
                }
    发现个问题就是在datagridview选中的那一行上checkbox的值并没有改变。经baidu和google了一下,发现在代码改变状态前,使其readonly变为true就能解决。原理不得而知,先记下来吧!改进后的代码如下:
             //全选
             if (dataGridView1.Rows.Count > 0)
                foreach (DataGridViewRow dgvr in dataGridView1.Rows)
                {
                    (dgvr.Cells[" checkbox列名称 "] as DataGridViewCheckBoxCell).ReadOnly = true;
                    (dgvr.Cells["checkbox列名称"] as DataGridViewCheckBoxCell).Value = true;
                    (dgvr.Cells[" checkbox列名称 "] as DataGridViewCheckBoxCell).ReadOnly = false;
                }
             //反选
              if(dataGridView1.Rows.Count>0)
                foreach (DataGridViewRow dgvr in dataGridView1.Rows)
                {         
                    (dgvr.Cells[" checkbox列名称 "] as DataGridViewCheckBoxCell).ReadOnly = true;
                    (dgvr.Cells[" checkbox列名称 "] as DataGridViewCheckBoxCell).Value = (bool)((dgvr.Cells["DeleteFile"] as DataGridViewCheckBoxCell).Value) ? false : true;
                    (dgvr.Cells[" checkbox列名称 "] as DataGridViewCheckBoxCell).ReadOnly = false;
                }

最新文章

  1. Linux下配置一个VNC服务器
  2. LABjs(类似于LazyLoad,但它更加方便管理依赖关系)
  3. BZOJ 2466: [中山市选2009]树
  4. Jquery实现ready()的源码
  5. virtualbox 打不开ubuntu解决
  6. Mysql远程登录授权
  7. oracle不用tsname文件的时候着怎么办
  8. oracle查看字符集后修改oracle服务端和客户端字符集的步骤
  9. 我的WebX框架学习总结与心得分享
  10. python web开发遇到socket.error[errno 10013]
  11. Python开发之--前端 HTML基础
  12. WordPress 使用 Pie-Register 添加前台注册、登录、找回密码和编辑个人资料功能
  13. exe可执行程序及堆栈分配(转载)
  14. C#反射 入门学习 01
  15. ubuntu下使用 chkconfig 是一种习惯
  16. <The Art of Readable Code> 笔记二 (下)
  17. dev gridControl 自定义绘制列头颜色
  18. VSC 解决红底线问题
  19. php 常用的自定义函数
  20. Inotify+Rsync实现Linux服务器文件同步

热门文章

  1. word的样式设置
  2. I/O设备
  3. Chrome浏览器如何完美实现滚动截图技巧
  4. tensorflow基础-placeholder
  5. CF D - Beautiful Graph(dfs 染色问题吧)给你一个图,每个节点可以赋值1,2,3三种数字,相邻的节点的和必须是奇数,问有多少中方法。
  6. Tarjan算法打包总结(求强连通分量、割点和Tarjan-LCA)
  7. [转] Angular 4.0 内置指令全攻略
  8. Android 调整图标和字体大小
  9. 【记录】BurpSuite之Grep-Extract
  10. C++ GUI Qt4编程(10)-3.4spreadsheet