我很快做出了一個Windows窗體項目,它加載了一個帶有浮點值的不同文本框的GUI。其中一些確實已經初始化了一個值。所有文本框都必須在更改其中一個文本框後進行更新。Windows窗體無限循環異常
public Form1()
{
InitializeComponent();
initializeValues();
calculateValues();
}
public void initializeValues()
{
//textboxes are filled/initialized with default float values
}
public void calculateValues()
{
//here all textboxes are new calculated and updated
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
calculateValues();
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
calculateValues();
}
問題: 當我執行這個項目,它拋出我這是一個unhandeled StackOverflowException(無限循環或無限遞歸)。我認爲這是因爲在calculateValues()
方法中,文本框的文本將被改變,然後事件處理程序被激活。這是:-(
我如何改變我上面的代碼結構來避免這種情況的無限循環
感謝
設置斷點,遍歷代碼,你會發現你的懷疑是正確的。只需退訂該活動,並在更改後重新訂閱。 – CodeCaster
當引發Win32異常時,將您的IDE設置爲中斷。你會在你面前有整個callstack,立即放棄,爲什麼你有一個無限循環/無限遞歸。 – IInspectable