C# 从另一个类访问变量inForm1
我已经找了一段时间了,真的找不到解决我问题的好办法 我有一门课(我们称之为TaskbarNotifier)和我的表格1 在TaskbarNotifier中,我得到了以下信息:C# 从另一个类访问变量inForm1,c#,class,variables,C#,Class,Variables,我已经找了一段时间了,真的找不到解决我问题的好办法 我有一门课(我们称之为TaskbarNotifier)和我的表格1 在TaskbarNotifier中,我得到了以下信息: private Form1 form = new Form1(); this.form.NotifiersCount = this.form.NotifiersCount - 1; switch (notifier) { case 0:
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;
}
private ContextMenuStrip contextMenu = new ContextMenuStrip();
private ToolStripMenuItem mnuItemExit = new ToolStripMenuItem();
private ToolStripMenuItem mnuItemShow = new ToolStripMenuItem();
后来在那节课上我得到了这个:
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;
}
private ContextMenuStrip contextMenu = new ContextMenuStrip();
private ToolStripMenuItem mnuItemExit = new ToolStripMenuItem();
private ToolStripMenuItem mnuItemShow = new ToolStripMenuItem();
现在我的问题是,当我执行此操作时,会在以下位置出现StackOverflow错误:
private Form1 form = new Form1();
是否有其他更好的方法从另一个类访问Form1中的变量
非常感谢阅读:)
----编辑---
好的,在表单1中,我得到了这个:
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;
}
private ContextMenuStrip contextMenu = new ContextMenuStrip();
private ToolStripMenuItem mnuItemExit = new ToolStripMenuItem();
private ToolStripMenuItem mnuItemShow = new ToolStripMenuItem();
这就是stackoverflow实际开始的地方。
但通过删除:
private Form1 form = new Form1();
从TaskbarNotifier它不会抛出任何错误。显然,您正在
表单1
的构造过程中的某个地方创建一个TaskbarNotifier
如果:
var test=new taskbanotifier()
Form1
都将构造一个taskbanotifier
,然后构造一个Form1
,并且,这种情况会发生很多次,并且会导致堆栈溢出
确保
TaskbarNotifier
不是作为Form1
创建的一部分创建的,错误将消失。Form1的构造函数中发生了什么?你确定这就是堆栈溢出异常的原因吗?实际上。。不这不是stackoverflow发生的地方,我忘了我已经注释了一些东西来发现问题。。stackoverflow从Form1开始,我将快速更新我的问题:)您在哪里创建TaskbarNotifier
?毫无疑问,在Form1
的构造函数中的某个地方?@BradleyDotNET好吧,现在我只是觉得自己很愚蠢,xD我在表单完成之前创建了TaskbarNotifier-“,”更重要的是,如果Form1在构建过程中创建了TaskbarNotifier
,那么这里会有一个无限递归循环。我会把这些评论变成一个答案。