在形成标签正在显示计时器的计数。 现在我想停下来,开始和使用形式2.我该怎么办this.plz帮助重置
Answer 1:
形式只是类,并在表格2的计时器是类中的一个对象。
您可以更改Modifiers
的计时器的财产公开,然后实例里面形式1 Form 2,调用Show()
表2的方法,然后访问您的Timer对象现在是公开的。
所以,你有2种形式,像这样的一个项目:
在表1中创建一个按钮,如下所示:
放置在表2中的计时器对象并更改访问修饰符,如下所示:
然后把下面的代码你的按钮下的形式之一:
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
f2.timer1.Enabled = true;
}
现在,你可以启动表格2和表格1访问所有属性的计时器上的表格2。
这是否帮助?
Answer 2:
如果计时器对象驻留在Form1上,然后为它创建一个公共属性:
public Timer Form1Timer { get { return timer1; } }
然后你就可以通过具有参考表格2,配成1你可以通过它来构造,或者具有Form 2上的一组属性做这个访问此计时器。 一旦你到Form1的参考,你可以简单地调用计时器方法:
Form1.Form1Timer.Start();
你总是可以创建一个单独出Form1的,如果你不能通过它来Form2的一个参考。
声明你的单身:
private static Form1 _singleton
初始化你单身,如果它不是已经,并将其返回:
public static Form1 Singleton
{
get { _singleton ?? (_singleton = new Form1()); }
}
为了获得最佳的做法,让你的Form1构造私有的。 如果Form1中没有默认构造函数(无参数)这当然是行不通的。
然后,在窗体2:
Form1.Singleton.Form1Timer.Start();
Answer 3:
做这个
static Form1 _frmObj;
public static Form1 frmObj
{
get { return _frmObj; }
set { _frmObj = value; }
}
在窗体加载
private void Form1_Load(object sender, EventArgs e)
{
frmObj= this;
}
访问形式,它是从另一个窗体控件
Form1.frmObj.timer1.Stop();
文章来源: Control timer in form 1 from form 2, C#