码迷,mamicode.com
首页 > Windows程序 > 详细

DataGridViewCheckBoxColumn的问题

时间:2015-07-28 20:45:39      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

环境:VS2013

系统:win7 32位

问题:在DataGridView中使用列样式DataGridViewCheckBoxColumn的问题:

(1)界面上通过鼠标点击,使DataGridViewCheckBoxColumn列的多个CheckBox状态发生改变后,当鼠标仍选中DataGridViewCheckBoxColumn列的某个单元格时,获取其状态时,发现选中的单元格值获取结果错误;

获取方法:dr.Cells["CheckItem"].Value.ToString()

            foreach (DataGridViewRow dr in DgvSoftUp.Rows)
            {
                if (dr.Cells["CheckItem"].Value != null)
                {
                    if (Convert.ToBoolean(dr.Cells["CheckItem"].Value.ToString()))
                    {
                         ……
                    }
                }
            }

解决方法(来源于http://www.cnblogs.com/gossip/archive/2008/12/02/1346047.html):

在DataGridView的CurrentCellDirtyStateChanged事件中增加:DgvSoftUp.CommitEdit(DataGridViewDataErrorContexts.Commit);

        private void DgvSoftUp_CurrentCellDirtyStateChanged(object sender, EventArgs e)
        {
            DgvSoftUp.CommitEdit(DataGridViewDataErrorContexts.Commit);
        }

 

(2)通过代码设置CheckBox状态时,当单元格选中状态时,状态设置无效。

设置代码如下:

           foreach (DataGridViewRow dr in DgvSoftUp.Rows)
            {
                 dr.Cells["CheckItem"].Value = true;
            }

 解决办法,在设置之后,增加EndEdit(): 

     DgvSoftUp.EndEdit();

 

DataGridViewCheckBoxColumn的问题

标签:

原文地址:http://www.cnblogs.com/starpnd/p/4684086.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!