| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4605 人关注过本帖
标题:如何实现监测datagridview中的checkbox的状态?
只看楼主 加入收藏
ld999
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2007-4-11
收藏
 问题点数:0 回复次数:8 
如何实现监测datagridview中的checkbox的状态?
我用了以下事件和代码:出现一个问题,轻轻的单击,运行正常,如果速度稍为一快的点击该列,就会出现混乱,也就是选中时,审核列却为未审核了,正好相反。请问一下如何修改。谢谢  
      private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)  //根据checkbox值的不同,进行审核和存储。
        {
            if (e.ColumnIndex == 0)
            {

                if (this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].EditedFormattedValue.ToString() == "True")
                {
                    (this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex]).Value = "False";
                    this.dataGridView1.Rows[e.RowIndex].Cells[8].Value = "已审核";
                }
                else if (this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].EditedFormattedValue.ToString() == "False")
                {
                    (this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex]).Value = "True";
                    this.dataGridView1.Rows[e.RowIndex].Cells[8].Value = "";
                }  
   
            }
         }
搜索更多相关主题的帖子: checkbox datagridview 状态 监测 
2008-01-24 12:57
tanxiaolin
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2007-12-12
收藏
得分:0 
你加个try{}吧,做个异常处理就OK了。
2008-01-24 13:04
ld999
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2007-4-11
收藏
得分:0 
下面是改进后的事件和代码,   还是刚才的毛病,功能上,如果慢慢的一点一点的多次点也没问题,就是不能加快速度多点,情况是这边不管是什么状态,是不是勾选,而旁边的列不变化了。只能停下,再点一下,才行。
   private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            this.();
            if (e.ColumnIndex == 0)
            {
                if (((DataGridViewCheckBoxCell)this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex]).Tag == null)
                {
                    ((DataGridViewCheckBoxCell)this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex]).Tag = "1";
                    this.dataGridView1.Rows[e.RowIndex].Cells[8].Value = "已审核";
                }
                else if (Convert.ToBoolean(this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value) == true)
                {
                    ((DataGridViewCheckBoxCell)this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex]).Tag = "0";
                    this.dataGridView1.Rows[e.RowIndex].Cells[8].Value = "";
                }
                else
                {
                    ((DataGridViewCheckBoxCell)this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex]).Tag = "1";
                    this.dataGridView1.Rows[e.RowIndex].Cells[8].Value = "已审核";
                }
            }
               
        }
2008-01-24 14:47
C_B_Lu
Rank: 1
等 级:新手上路
威 望:1
帖 子:453
专家分:0
注 册:2006-1-10
收藏
得分:0 
不要用CellClick事件,用CellValueChange事件呢(不知事件名有没有写错), 
试试看。

帮助那些真正需要帮助的人,是对帮助你的人最好的回报!
2008-01-24 23:34
ld999
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2007-4-11
收藏
得分:0 
真的感谢
2008-01-25 08:56
ld999
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2007-4-11
收藏
得分:0 
to:C_B_Lu

能不能麻烦你帮我调一下,我给你发地去
2008-01-25 09:06
ld999
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2007-4-11
收藏
得分:0 
请留你的邮箱或QQ 号
2008-01-25 09:07
happynise
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-10-9
收藏
得分:0 
以后最好问问题水平要高一点!

这样大家也好帮助你!

比如: 1+1=

而不是 1+1 为何=2.
2008-01-25 23:29
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
收藏
得分:0 
同样的问题我也碰到了,楼主是怎么解决的?分享一下吧!

2008-07-16 11:28
快速回复:如何实现监测datagridview中的checkbox的状态?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018571 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved