如何实现两个textbox的text根据数学关系联动?

如何实现两个textbox的text根据数学关系联动?

问题描述:

比如,一个textbox输入值后,另一个textbox计算出其百分比(利用一个已知数);
另一个textbox输入百分比后,一个textbox计算出其值。两个textbox只需要输入其中一个。

在一个textbox的textchanged事件里面编码对另一个textbox进行赋值,会形成无限循环。请教有什么好的办法?

private bool inchange = false;

void textbox1_textchanged(...)
{
if (!inchange)
{
inchange = true;
textBox2.Text = double.Parse(textBox1.Text) / 100.0;
inchange = false;
}
}
另一个类似

在textchanged里面写。
比如第一个是值
第二个是百分比
那么第一个写:
textBox2.Text = double.Parse(textBox1.Text) / 100.0;
第二个写
textBox1.Text = double.Parse(textBox2.Text) * 100.0;

执行是会出错,提示进入无限循环了。

应该也不会有什么无限循环啊,因为后面的 text 没有变化,是不会触发 textchange 事件的。只有用户修改时,会触发两次:每个 Text 各一次。
如果系统的默认会触发,你也可以试试在一个控件中修改另一个控件前,先判断一下现有的字符串与将修改的字符串是否一样?不一样时,再做修改。