c# 确保你没有无限循环或无限递归

来源:百度知道 编辑:UC知道 时间:2024/05/26 09:27:46
public Form2()
{
Form1 formend = new Form1();
formend.menuStrip1.Enabled = false;
Close();
Application.Exit();
InitializeComponent();

}
调试的时候弹出错误:确保你没有无限循环或无限递归。我想问一下应该怎么写。菜鸟提问。
谢谢!
我只是想在form2窗口弹出来的时候,把form1里的menustrip设置为不可用。

未处理的“System.StackOverflowException”类型的异常出现在 System.Windows.Forms.dll 中。

呵呵。不好意思。只写那两行的话就是会弹出错误出来。所以我后面加了Application.Exit(); 不过一样,也会弹出同样的错误出来。

也不知道你要干什么
public Form2()
{
Hide();
//Application.Exit();
InitializeComponent();
Form1 formend = new Form1();
formend.menuStrip1.Enabled = false;
}

我觉得你的代码有问题啊,Form1 是主窗体还是Form2?

大概这个意思吧,Application.Exit(); 一执行,你的程序就退出了啊,这句话你是想起什么作用呢?

Application.Exit();
InitializeComponent();
这个都出来了...汗...先退出主进程然后初始化?

你只要使用Form2.ShowDialog下就可以了,在Form2里又new一个Form1,那原来的Form1实例算是什么?
ShowDialog的时候焦点会在子窗体上

public Form2()
{
Form1 formend = new Form1();
formend.menuStrip1.Enabled = false;

}

这样就足够了