WinForm/C# WnGrid FormLookup.AfterFillData 事件中请勿将焦点切换至其它行带有 Formula 公式的字段

xinggang · 2018年10月23日 · 94 次阅读

标题可能不易理解,这里解释一下: WnGrid 某一列配置了 FormLookup 查询,有时你可能想在 AfterFillData 事件中做一些逻辑处理,并且在这个事件中将当前行改变,恰恰当前列配置了 Formula 公式(或者自己又改变了当前列),这时问题就来了,在执行完 AfterFillData 事件后,你会发现新切换的行的行状态被改变了(可能原本是 UnChanged 状态)。

这里可以理解成 WnGrid.FormLookup 一个小小的 bug,但因为遇到的机率可能只有 0.38%,所以也可以接受仍然如此,但宁超老师被这个问题折磨了一下下。(大家有疑惑的可以咨询宁老师)

分析结论一句话:

在 AfterFillData 事件执行完以后,FormLookUp 会去判断当前列是否有 Formula 公式,如果有则计算一下。而此时当前行已经不是原来执行 FormLookup 的行了!
20181023091016942

图中 1 处会调用用户注册的 AfterFillData 事件。

解决方案:

焦点切换到一个没有公式的列上,或者...

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册