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)