C# 如何从第二个窗体启动第一个窗体计时器

C# 如何从第二个窗体启动第一个窗体计时器,c#,C#,我已经尝试过多次访问和更改控件的属性,如计时器 这是我的密码,请帮帮我 public partial class Form1 : Form { public Form1() { InitializeComponent(); } } public partial class Form2 : Form { public Form2() { InitializeComponent(); } priva

我已经尝试过多次访问和更改控件的属性,如计时器 这是我的密码,请帮帮我

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
}

public partial class Form2 : Form
 { 
    public Form2()
    {
        InitializeComponent();   
    }

    private void button2_Click(object sender, EventArgs e)
    {
        Form1 frm = new Form1();
        frm.timer1.Enabled = true;      
    }
}
我也尝试过重载构造函数

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
 }

 public partial class Form2 : Form
 { 
    Form1 mainform; 

    public Form2(Form1 mainform)
    {
        InitializeComponent();
        this.mainform=mainform;
    }

    public Form2()
    {
        InitializeComponent();   
    }

    private void button2_Click(object sender, EventArgs e)
    {
        mainform.timer1.Enabled = true;           
    }
}
当我使用构造函数重载时,出现了异常错误,比如找不到对象引用 请帮帮我。。。。。。。。。。。。。。。。。。。。
感谢并尊重穆罕默德·阿扎姆·汗

如果您用代码编写了如何调用它,我们会更有帮助。这个异常表示当您从2调用时,您不使用重载构造函数

 public Form2(Form1 mainform)
    {
        InitializeComponent();
        this.mainform=mainform;

    }
  public Form2()
    {
        InitializeComponent();


    }
也许你会明白,如果你叫它

From2 form = Form2();
Mainform应为null,因此将引发此异常。检查表单2中的代码。

在表单1中:

 public bool TimerEnable{
      get{ return  timer1.Enabled;}
      set{
            timer1.Enabled = value;
      }
 }
表格2:

 private void button2_Click(object sender, EventArgs e)
 {
    Form1 frm = new Form1();
    frm.TimerEnable = true;
 }

在表单之间传递数据时,需要使用现有表单的同一实例(而不是创建新实例)。请参阅我的两个表单项目:如果您想访问不同的表单,您必须以某种方式传递对该表单的引用,而不是创建新对象(第一种方法)假设该引用将在构造函数中单独传递。在创建Form2时(不知道怎么做),只需传递当前表单(我假设您以某种方式从Form1创建Form2)