如果两个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();
}
}