winform 列计算问题

2019-10-10 17:07发布

举例:有3列,分别是
数量 单价 金额
计算公式是:
数量*单价=金额。
特殊需求是,可以输入金额,反算单价。
遇到的问题是,如果数量或单价变化触发计算金额,而金额变化触发反算单价,于是导致死循环了。

用的控件是dev的gridcontrol。

4条回答
家丑人穷心不美
2楼-- · 2019-10-10 17:23

加个状态量进行阻断不就行了。

查看更多
欢心
3楼-- · 2019-10-10 17:39
单价.Changed += 单价Changed;
金额.Changed += 金额Changed;

void 单价Changed(){
      金额.Changed -= 金额Changed;
      金额 = 单价*数量;.
      金额.Changed += 金额Changed
}

void 金额Changed(){
      单价.Changed -= 单价Changed;
      单价 = 金额/数量;
      单价.Changed += 单价Changed;
}
查看更多
戒情不戒烟
4楼-- · 2019-10-10 17:42

在离开事件里做计算就行了,给控件赋值的时候不会触发离开事件的

查看更多
等我变得足够好
5楼-- · 2019-10-10 17:44

尝试下:校验计算结果和文本值是否一致,一致就停止计算。

查看更多
登录 后发表回答