问1,是用DataGridView的事件还是 bindingsource的事件更好?
问2,如何在当前行改变事件未执行完毕时,不能改变当前行,相当于禁止改变当前行(好像使用Enable不管用)
2 个解决方案
#1
1. 用DataGridView事件吧.
2.
此处, bAllowChange指示当前行改变事件是否执行完毕.
2.
// 当用户单击至指定位置时进行验证
private void DataGridView_CurrentCellChanged(object sender, EventArgs e)
{
if (this.CurrentCell == null || !bAllowChange)
return;
....
}
此处, bAllowChange指示当前行改变事件是否执行完毕.
#2
问2,如何在当前行改变事件未执行完毕时,不能改变当前行,相当于禁止改变当前行(好像使用Enable不管用)
----------------------------------------------
事件都是在某个时机发生,或正在改变,或已经完成改变,我不知道你说的当前行改变事件是什么事件,如果是CurrentCellChanged(当前单元格改变),那么事件发生时,改变已经完成。
如果你是需要在当前行发生变化的这个时机进行某种验证,可以考虑使用RowValidating事件(正在验证,如不符合规则可取消当前行变化)和RowValidated事件(验证完成)。
----------------------------------------------
事件都是在某个时机发生,或正在改变,或已经完成改变,我不知道你说的当前行改变事件是什么事件,如果是CurrentCellChanged(当前单元格改变),那么事件发生时,改变已经完成。
如果你是需要在当前行发生变化的这个时机进行某种验证,可以考虑使用RowValidating事件(正在验证,如不符合规则可取消当前行变化)和RowValidated事件(验证完成)。
#1
1. 用DataGridView事件吧.
2.
此处, bAllowChange指示当前行改变事件是否执行完毕.
2.
// 当用户单击至指定位置时进行验证
private void DataGridView_CurrentCellChanged(object sender, EventArgs e)
{
if (this.CurrentCell == null || !bAllowChange)
return;
....
}
此处, bAllowChange指示当前行改变事件是否执行完毕.
#2
问2,如何在当前行改变事件未执行完毕时,不能改变当前行,相当于禁止改变当前行(好像使用Enable不管用)
----------------------------------------------
事件都是在某个时机发生,或正在改变,或已经完成改变,我不知道你说的当前行改变事件是什么事件,如果是CurrentCellChanged(当前单元格改变),那么事件发生时,改变已经完成。
如果你是需要在当前行发生变化的这个时机进行某种验证,可以考虑使用RowValidating事件(正在验证,如不符合规则可取消当前行变化)和RowValidated事件(验证完成)。
----------------------------------------------
事件都是在某个时机发生,或正在改变,或已经完成改变,我不知道你说的当前行改变事件是什么事件,如果是CurrentCellChanged(当前单元格改变),那么事件发生时,改变已经完成。
如果你是需要在当前行发生变化的这个时机进行某种验证,可以考虑使用RowValidating事件(正在验证,如不符合规则可取消当前行变化)和RowValidated事件(验证完成)。