我想访问变量等从表单1到表单2,我有一个主表单,然后用一些指示符打开另一个表单,一个计时器继续滚动表单2以检查表单1中的变量和列表并亮或暗指标。 但我得到了#34; Stack overflow exeption" se picture
这是代码:
public partial class Form1 : Form
{
Diagnostik formDiagnostics = new Diagnostik();
打开表单2的按钮:
private void buttonDiagnostics_Click(object sender, EventArgs e)
{
formDiagnostics.Show();
}
表格2:
public partial class Diagnostik : Form
{
Form1 form1 = new Form1();
计时器:
private void updateGUI_Tick(object sender, EventArgs e)
{
if (Convert.ToBoolean(form1.ListServo1Inputs[0]) == true) { indicatorS1Di1.BackColor = Color.Green; }
else { indicatorS1Di1.BackColor = Color.Gray; }
答案 0 :(得分:1)
在屏幕截图中,我看到您在Diagnostik表单构造函数中创建了Form1。与此同时,您将在Form1构造函数中创建Diagnostic表单。所以你可能在这里得到了无限循环。
答案 1 :(得分:0)
您需要将form1传递给formDiagnostics的构造函数:
public partial class Form1 : Form
{
private Diagnostik formDiagnostics;
public Form1()
{
formDiagnostics = new Diagnostik(this);
}
在Diagnostik构造函数中,将Form1参数存储到字段/属性中:
public partial class Diagnostik : Form
{
private Form1 form1;
public Diagnostik(Form1 form1)
{
this.form1 = form1;
}
然后,您可以访问您的私人Diagnostik.form1字段:
private void updateGUI_Tick(object sender, EventArgs e)
{
if (Convert.ToBoolean(form1.ListServo1Inputs[0]) == true) { indicatorS1Di1.BackColor = Color.Green; }
else { indicatorS1Di1.BackColor = Color.Gray; }