winform 列计算问题

2019-10-10 17:15发布

问题:

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

用的控件是dev的gridcontrol。

回答1:

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



回答2:

单价.Changed += 单价Changed;
金额.Changed += 金额Changed;

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

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


回答3:

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



回答4:

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