我想访问变量,比如从表格1到表格2,我有一个主表单,然后打开另一个主表单,一个计时器在表2中滚动,检查变量和表1中的变量和列表,并使指示器变暗或变暗。但是我得到了“堆叠溢出”的图片
这是代码:
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; }发布于 2018-03-08 16:39:04
您需要将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; }发布于 2018-03-08 16:35:53
在屏幕截图中,我看到在Diagnostik表单构造函数中创建Form1。同时,在Form1构造函数中创建诊断表单。所以也许你在这里有一个无穷无尽的循环。
https://stackoverflow.com/questions/49178037
复制相似问题