请选择 进入手机版 | 继续访问电脑版

无忧编程_ASP.NET  / C# / PHP 程序员的软件世界

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 39|回复: 0

winform中DataGridView DataGridViewCheckBoxColumn编辑时实时触发事件

[复制链接]

349

主题

379

帖子

1565

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1565
发表于 2018-7-7 08:42:44 | 显示全部楼层 |阅读模式
winform中DataGridView DataGridViewCheckBoxColumn编辑时实时触发事件
正常响应CellValueChanged()事件时,当改变checkbox状态时,只有当焦点离开该单元格时才能触发CellValueChanged()事件,
如果要改变checkbox值时实时触发CellValueChanged()事件,需要借用CurrentCellDirtyStateChanged()事件来提交未提交控件的更改。
[C#] 纯文本查看 复制代码
private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
        {
            if (dataGridView1.IsCurrentCellDirty)
            {
                dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
            }
        }
这样CellValueChanged()事件就可以随着checkbox的值的改变实时触发;
[C#] 纯文本查看 复制代码
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0 && e.RowIndex != -1 && !dataGridView1.Rows[e.RowIndex].IsNewRow)
            {
                if (e.ColumnIndex == 7)
                {
                    if ((bool)this.dataGridView1[e.ColumnIndex, e.RowIndex].Value == true)
                    {
                        this.dataGridView1[1, e.RowIndex].Value = 100;
                    }
                    else
                    {
                        this.dataGridView1[1, e.RowIndex].Value = 10;
                    }
                }
            }
            this.toolStripStatusLabel1.Text = e.ColumnIndex.ToString() + "," + e.RowIndex.ToString();
      
        }

windows .net(C#+MSSQL) linux(php+mysql)  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|软件编程 ( 鄂ICP备11006601号鄂公网安备 42011102001337号 |

GMT+8, 2018-7-22 18:29 , Processed in 0.128948 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表