c# TextBox控件的TextChanged响应函数

如果两个TextBox都绑定了自己的TextChanged的响应函数,并且,在其函数体中的行为都设定为根据自己的内容,来修改对方的内容。这样,当一个TextBox的内容改变时,会改变另外一个TextBox的值,然后进入对方的TextChanged的响应函数。然后,再进入自己的TextChange响应函数。。。这样一直进行下去。这种相互调用停止的临界条件为:某次一方text改变,然后函数内改变另一个tb的值,这个tb的值在该函数调用前后值相同,这样就不触发其TextChange函数,这样就不会继续相互调用,否则,可能会死循环。


如下面的代码,一旦进入其中一个函数,就是死循环代码:

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            int iTemp;
            if (int.TryParse(textBox1.Text.Trim(), out iTemp))
            {
                textBox2.Text = (int.Parse(textBox1.Text.Trim()) + 1).ToString();
            }
        }


        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            int iTemp;
            if (int.TryParse(textBox2.Text.Trim(), out iTemp))
            {
                textBox1.Text = (int.Parse(textBox2.Text.Trim()) + 1).ToString();
            }
        }


你可能感兴趣的:(c# TextBox控件的TextChanged响应函数)