Datagridview中有5列:数量,单价,折扣率,折扣额,金额。
公式为:数量*单价*(1-折扣率)=金额。
动作:1)当我更改数量、单价,折扣率时,自动甲酸折扣额,金额这2列。
2)当更改折扣额、金额时,倒算折扣率这1列
3)若这5列都有数据,则将差额放入单价或者折扣率中。我用dataGridView_CellValueChanged中判断会进入死循环。不知道各位大虾是否有其他方法?
公式为:数量*单价*(1-折扣率)=金额。
动作:1)当我更改数量、单价,折扣率时,自动甲酸折扣额,金额这2列。
2)当更改折扣额、金额时,倒算折扣率这1列
3)若这5列都有数据,则将差额放入单价或者折扣率中。我用dataGridView_CellValueChanged中判断会进入死循环。不知道各位大虾是否有其他方法?
试试 CellEndEdit 事件
然后当金额改变时,又要反算单价是20。
若考虑到单价的小数点后的位数无穷时,就会在金额与单价的无穷循环中来回反复。
{
dgv.CellValueChanged -= new DataGridViewCellEventHandler(dgv_CellValueChanged);
try
{
//更改...
}
finally
{
dgv.CellValueChanged += new DataGridViewCellEventHandler(dgv_CellValueChanged);
}
}