第一次用DataGridViewCheckBoxColumn,实在不了解特性,
就一个DataGridView,添加了一列DataGridViewCheckBoxColumn
发现很奇怪,我明明在前台点击这列,CheckBox也打上勾了,在后台获取Cells的Value,却是false(Selected为true)这是为什么呢?我是通过dataGridView1.Rows.Add()方法来添加行的,而不是绑定到数据源,跟这个有关系吗?

解决方案 »

  1.   

    没人知道?
    我现在的临时解决方案是设置DataGridViewCheckBoxColumn列为ReadOnly
    然后通过dataGridView1_CellClick事件改变Value不过还是很困惑,明明打勾了,Value却是false???
      

  2.   

    是不是你获取列错位了呢?臆想、、、
    友情UP~~[align=center]********************************************************
    本内容用CSDN小秘书回复
    每天回帖即可获得10分可用分!
    ********************************************************
    [/align]
      

  3.   

    它这个模板里面有2个值需要你进行设置。一个就是选中的值,一个是未选中的值。你是代码添加的行所以看不出来。你可以在form里面拖个datagridview,然后手工添加一个列,选择列模板为checkbox列。然后看这个列的属性。就会明白了
      

  4.   

    我看了下。是FalseValue和TrueValue。分别表示未选中时对应的值和选中时对应的值
      

  5.   

    我的列都是手动添加的,而且Checkbox列的FalseValue和TrueValue这2个值也都已经设置了
      

  6.   

    重新创建了一个新项目,就添加一个DataGridView和一个Label
    现象依旧,我把项目打了个包,谁帮我研究下吧?
    下载
      

  7.   

    处理一下CurrentCellDirtyStateChanged事件,当Cell值发生变化,立即提交改变
    private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
            {
                dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
            }
      

  8.   

    果然是这个问题,Windows下的东东,规矩还挺多
    谢谢兄台了