我一直在寻找一段时间,并且无法找到解决问题的好方法。
我上了一堂课(让我们称之为 TaskbarNotifier )和我的 Form1
在 TaskbarNotifier 中,我得到了这个:
private Form1 form = new Form1();
后来在那堂课上我得到了这个:
this.form.NotifiersCount = this.form.NotifiersCount - 1;
switch (notifier)
{
case 0:
this.form.NewsShown = false;
break;
case 1:
this.form.ThreadsSown = false;
break;
}
现在我的问题是,当我这样做时,我得到一个StackOverflow错误:
private Form1 form = new Form1();
我还有另一种更好的方法从另一个类访问Form1中的变量吗?
非常感谢您阅读:)
---- ---- EDIT
好的,所以在 Form1 构造函数中,我得到了这个:
private ContextMenuStrip contextMenu = new ContextMenuStrip();
private ToolStripMenuItem mnuItemExit = new ToolStripMenuItem();
private ToolStripMenuItem mnuItemShow = new ToolStripMenuItem();
stackoverflow实际启动的位置。 但是删除:
private Form1 form = new Form1();
来自任务栏通知器,它不会抛出任何错误。
答案 0 :(得分:1)
显然,您正在TaskbarNotifier
的构建过程中的某处创建Form1
。
如果出现这种情况:
var test = new TaskbarNotifier()
在任何一种情况下,Form1
都会构造一个TaskbarNotifier
然后构造一个Form1
,好吧,这种情况发生了很多次,你得到一个堆栈溢出。
确保确定 TaskbarNotifier
未在Form1
创建时创建,错误将消失。