c# DatagridView 当前行改变事件

时间:2022-08-28 14:45:36
现在我有1个DataGridView 当选中的行改变的时候 需要处理一些事情
问1,是用DataGridView的事件还是 bindingsource的事件更好?
问2,如何在当前行改变事件未执行完毕时,不能改变当前行,相当于禁止改变当前行(好像使用Enable不管用)

2 个解决方案

#1


1. 用DataGridView事件吧.
2. 
        // 当用户单击至指定位置时进行验证
        private void DataGridView_CurrentCellChanged(object sender, EventArgs e)
        {
            if (this.CurrentCell == null || !bAllowChange)
                return;
         ....
        }

此处, bAllowChange指示当前行改变事件是否执行完毕.

#2


问2,如何在当前行改变事件未执行完毕时,不能改变当前行,相当于禁止改变当前行(好像使用Enable不管用)
----------------------------------------------
事件都是在某个时机发生,或正在改变,或已经完成改变,我不知道你说的当前行改变事件是什么事件,如果是CurrentCellChanged(当前单元格改变),那么事件发生时,改变已经完成。
如果你是需要在当前行发生变化的这个时机进行某种验证,可以考虑使用RowValidating事件(正在验证,如不符合规则可取消当前行变化)和RowValidated事件(验证完成)。

#1


1. 用DataGridView事件吧.
2. 
        // 当用户单击至指定位置时进行验证
        private void DataGridView_CurrentCellChanged(object sender, EventArgs e)
        {
            if (this.CurrentCell == null || !bAllowChange)
                return;
         ....
        }

此处, bAllowChange指示当前行改变事件是否执行完毕.

#2


问2,如何在当前行改变事件未执行完毕时,不能改变当前行,相当于禁止改变当前行(好像使用Enable不管用)
----------------------------------------------
事件都是在某个时机发生,或正在改变,或已经完成改变,我不知道你说的当前行改变事件是什么事件,如果是CurrentCellChanged(当前单元格改变),那么事件发生时,改变已经完成。
如果你是需要在当前行发生变化的这个时机进行某种验证,可以考虑使用RowValidating事件(正在验证,如不符合规则可取消当前行变化)和RowValidated事件(验证完成)。