[英]C# unhandled exception of type 'System.StackOverflowException
希望我能解釋這個確定。 我有一個倒數計時器-用戶輸入時間等,然后從單選按鈕中選擇是否要打開最小尺寸或最大尺寸。 根據選擇的方式,它將加載“最小”或“最大”形式,在“用戶控制”形式中輸入的時間值將被傳遞並開始倒計時。 現在,在“用戶控制”表單上有暫停/停止,重置等按鈕。 我希望這些以最小/最大形式出現。 我希望對我來說最簡單的方法是隱藏用戶控件表單上的按鈕,然后嘗試將其連接到最小/最大表單上的按鈕,以便如果按下它們,則就像用戶控件上的按鈕一樣按下。 但是我遇到標題錯誤-它以黃色突出顯示下面的語句(將執行的下一條語句)。
(注意-這行代碼是Min形式的-我需要聲明它的新實例,以便我可以調用函數PauseMinClick(MinForm上的Pause按鈕)_我希望它調用CountdownUserControl中的btnPauseClick函數)。
private CountdownUserControl CU = new CountdownUserControl();
private void PauseMin_Click(object sender, EventArgs e)
{
CU.btnPause_Click(sender, e);
}
並在下面以綠色突出顯示一個(該線程從當前函數返回時執行的下一條語句)...
private Min _Min = new Min();
(這是在我的CountdownUserControl類中-注意,我需要在此處使用它的一個實例來傳遞必須倒數的值。有人知道我應該做什么才能輕松解決此問題嗎?理想情況下,我不想重寫很多的代碼-我只想讓它與新表單上的“最大/最小”按鈕配合使用,但是就像在UserControl表單上一樣(它們都可以正常工作)按下時,將其連接起來。
非常感謝-科利
聽起來您像這樣:
class CountdownUserControl
{
private Min _Min = new Min();
// Other stuff...
}
class Min
{
private CountdownUserControl CU = new CountdownUserControl();
// Other stuff...
}
換句話說,要創建Min
的實例,您需要創建CountdownUserControl
...的實例,而該實例又需要創建Min
...的實例...而后者又需要創建CountdownUserControl
的實例...您看看你為什么有問題?
對我來說,您要實現的目標還不是很清楚,但這就是問題的原因。 也許其中一個類應在其構造函數中采用一個參數,以允許其引用另一個實例?
您說這在您的CountdownUserControl類中? 如果是這樣,這就是問題所在:
private CountdownUserControl CU = new CountdownUserControl();
它創建一個新的CountdownUserControl,它創建一個CountdownUserControl,它在堆棧溢出之前.....等
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.