表单中的标签显示计时器的计数。现在我想停止,启动并使用表单2重置它。我该怎么做.plz help
答案 0 :(得分:3)
表单只是类,表单2上的计时器是该类中的对象。
您可以将计时器的Modifiers
属性更改为public,然后在表单1中实例化表单2,调用表单2的Show()
方法,然后访问现在公开的计时器对象
所以你有一个包含两个表格的项目:
在表单1中创建一个按钮,如下所示:
在表单2上放置一个计时器对象并更改访问修饰符,如下所示:
然后将以下代码放在您的按钮下面,形式为:
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
f2.timer1.Enabled = true;
}
现在,您可以启动表单2并访问表单1中表单2上的计时器上的所有属性。
这有帮助吗?
答案 1 :(得分:2)
如果计时器对象驻留在Form1中,则为其创建一个公共属性:
public Timer Form1Timer { get { return timer1; } }
然后,您可以通过在表单2中引用表单1来访问此计时器。您可以通过将其传递给构造函数或在Form2上具有set属性来执行此操作。一旦你有对Form1的引用,你可以简单地调用计时器上的方法:
Form1.Form1Timer.Start();
如果您无法将Form1的引用传递给Form2,则始终可以从Form1中创建单例。
声明你的单身人士:
private static Form1 _singleton
初始化你的单例(如果它还没有),并将其返回:
public static Form1 Singleton
{
get { _singleton ?? (_singleton = new Form1()); }
}
要获得最佳实践,请将Form1构造函数设为私有。如果Form1没有默认构造函数(无参数),这当然不起作用。
然后在Form2中:
Form1.Singleton.Form1Timer.Start();
答案 2 :(得分:0)
这样做
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();