我的理解一般leave的时候获取值可能是要做校验逻辑。以下代码给你参考,也许对你有帮助。
- private void GcMultiRow_CellParsing(object sender, CellParsingEventArgs e)
- {
- var editingValue = e.Value;
- if(MyValidateLogic(editingValue) == false) // 模拟校验逻辑
- {
- MessageBox.Show("输入值非法!");
- e.Value = this.gcMultiRow.CurrentCell.Value; // 如果校验失败,报错并回滚数据。
- }
- }
- public bool MyValidateLogic(object value)
- {
- if(object.Equals(value, "あ")) //这里可以写业务需要的校验逻辑
- {
- return false;
- }
- return true;
- }
复制代码
这段代码的核心思想就是用CellParsing事件替代Leave事件,在CellParsing里,e.Value可以取得用户输入法里未提交的值。也许这个信息对你有用。 |