我收到错误我的代码中的Forte Sender.exe中发生了未处理的类型'System.StackOverflowException'的异常.我理解这意味着我的代码中存在无限循环,但我似乎无法找到这个循环.这是我的代码:
Form1中:
public partial class MainBox : Form
{
//Making a name for the ApplicationProperties form. It can be opened when called.
ApplicationProperties ApplicationPropertiesWindow = new ApplicationProperties();
//All of the functions for form1 below.
Run Code Online (Sandbox Code Playgroud)
窗体2:
public partial class ApplicationProperties : Form
{
MainBox MainBoxWindow = new MainBox();
//All of the funcitons for form2 below.
Run Code Online (Sandbox Code Playgroud)
所以我注意到,如果我拿出MainBox MainBoxWindow = new MainBox();那个程序将正确运行.但我需要那个实例来调用Form1中的函数.我怎样才能解决这个问题?要么以不同的方式调用函数,要么解决无限循环.
好吧,你MainBox创造一个ApplicationProperties,然后创造一个MainBox,创造一个ApplicationProperties,等等无限的广告.显然你需要打破这个循环.
正如您的代码现在所示,您可能希望删除new MainBox()属性表单并在之后注入它,例如:
ApplicationProperties ApplicationPropertiesWindow = new ApplicationProperties();
ApplicationPropertiesWindow.MainBoxWindow = this;
Run Code Online (Sandbox Code Playgroud)
和
public partial class ApplicationProperties : Form
{
public MainBox MainBoxWindow { get; set; }
}
Run Code Online (Sandbox Code Playgroud)