cqtrq
cqtrq
2015-07-11 14:51
采纳率: 97.1%
浏览 1.7k
已采纳

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

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • caozhy
    已采纳

    private bool inchange = false;

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

    点赞 评论
  • caozhy

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

    点赞 评论
  • cqtrq
    cqtrq 2015-07-11 15:05

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

    点赞 评论
  • 91program
    91program 2015-07-11 15:11

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

    点赞 评论

相关推荐