c#未处理的'System.StackOverflowException类型异常
本文关键字:System StackOverflowException 类型 异常 未处理 | 更新日期: 2023-09-27 18:05:02
希望我能解释清楚。我有一个倒计时定时器-用户输入时间等,并选择如果他们想从单选按钮打开最小大小或最大大小。根据他们的选择,它将加载最小形式或最大形式,时间将值输入UserControl形式将传递并开始倒计时。现在在用户控制表单上有暂停/停止、重置等按钮。我想把这些换成最小/最大形式。我希望我这样做的最简单的方法是隐藏用户控制表单上的按钮,然后尝试将其连接到最小/最大表单上的按钮,所以如果他们按下它,就像按下用户控制按钮一样。然而,我在标题中得到错误-它突出显示黄色下面的语句(下一个语句将被执行)....
(注意-这行代码是在最小的形式-我需要声明它的一个新的实例,所以我可以调用函数PauseMinClick(在MinForm暂停按钮)_我希望它调用btnPauseClick函数是在CountdownUserControl)。
private CountdownUserControl CU = new CountdownUserControl();
private void PauseMin_Click(object sender, EventArgs e)
{
CU.btnPause_Click(sender, e);
}
并突出显示下面绿色的语句(当线程从当前函数返回时执行的下一条语句)…
private Min _Min = new Min();
(这是在我的CountdownUserControl类-注意,我需要它的一个实例在这里传递的值必须倒计时。有人知道我应该做什么来解决这个容易吗?理想情况下,我不想重新编写大量的代码-我只是想让它与新表单上的按钮Max/Min一起工作,但连接起来,就好像它们被按在UserControl表单上一样(它们都工作得很好)。
Many Thanks - Colly
听起来像这样:
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,它.....等等,直到堆栈溢出