标题:如何实现监测datagridview中的checkbox的状态?
取消只看楼主
ld999
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2007-4-11
 问题点数:0 回复次数:4 
如何实现监测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
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
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-198551-1-1.html




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

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