2011-04-10 74 views
1

我有两个文本框,我想计算每个文本框时,其他changed.but我的程序陷入一个循环。如何防止相关事件的发生?

private bool suspendEvents = false; 

    private void txtYourPercent_ValueChanged(object sender, EventArgs e) 
    { 
     if (suspendEvents) 
      return; 

     suspendEvents = true; 
     txtMyPercent.value = 100 - txtYourPercent.value; 
     suspendEvents = false; 
    } 

    private void txtMyPercent_ValueChanged(object sender, EventArgs e) 
    { 
     if (suspendEvents) 
      return; 

     suspendEvents = true; 
     txtYourPercent.value = 100 - txtMyPercent.value; 
     suspendEvents = false; 
    } 

这是我way.This方法disgusting.Any更好的解决办法? (“WinForms”)

如果没有其他解决方案,请告诉我删除此问题并使用我的(嘟嘟声)解决方案。

回答

2

您可以分配两个文本框相同chenge事件处理程序:

this.txtMyPercent.TextChanged += new System.EventHandler(this.txtPercent_TextChanged); 
this.txtYourPercent.TextChanged += new System.EventHandler(this.txtPercent_TextChanged); 

然后:

private void txtPercent_TextChanged(object sender, EventArgs e) 
{ 
    if (sender == txtMyPercent) 
    { 
     txtYourPercent.Text = (100 - int.Parse(txtMyPercent.Text)).ToString(); 
    } 
    else if (sender == txtYourPercent) 
    { 
     txtMyPercent.Text = (100 - int.Parse(txtYourPercent.Text)).ToString(); 
    } 
} 
+0

**嘿bro.It将下降Loop.I认为它不工作。 ** – WishToBePro 2011-04-10 14:52:50

+0

@WishToBePro,它在我测试它时工作。 – 2011-04-10 14:56:43

+0

@WishToBePro:然后发布您的所有代码。 – 2011-04-10 15:25:09

相关问题