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