你在这里进行相互递归。
在 MainForm 中,您在第 23 行隐式调用 CheckAnswers 构造函数(这是对非静态变量的初始化,这意味着它将在构造 MainForm 时运行)。
在 CheckAnswers 中,您以类似的方式创建一个 MainForm 实例(第 193 行)。
这将导致堆栈溢出 - MainForm 创建一个 CheckAnswers 对象,该对象创建一个 MainForm 对象,该对象创建一个 CheckAnswers 对象,该对象...
编辑:如果您需要在类之间进行双向通信(我建议在大多数情况下反对),这将不起作用。CheckAnswers 对象持有对不同实例MainForm 的引用,MainForm 的实例也是如此。这根本行不通(并且会导致无限递归)。
做你想做的事情的一种方法是将 MainForm 的实例发送到 CheckAnswers 构造函数,并在第 23 行使用“this”作为构造函数的参数并使用该参数初始化 mainform(在 CheckAnswers 中)。像这样的东西:
public partial class MainForm : Form
{
CheckAnswers checkanswers;
...
public MainForm()
{
checkanswers = new CheckAnswers(this);
...
}
}
public class CheckAnswers // Not sure why you inherit MainForm here, but it's not a good idea, as someone already stated
{
MainForm mainform;
public CheckAnswers (MainForm main)
{
mainform = main;
}
...
}