【发布时间】:2014-09-11 10:36:28
【问题描述】:
在 WinForms (C#) 应用程序中,我在运行时创建了几个自定义控件。这些自定义控件称为 JobTimers 并继承/扩展标准控件 Timer。
public class JobTimer : System.Windows.Forms.Timer
{
private int IntJobID;
public int JobID
{
get{return IntJobID;}
set{IntJobID = value;}
}
}
public static void CreateTimer(int JobID)
{
JobTimer ControlJobTimer = new JobTimer();
ControlJobTimer.Enabled = true;
ControlJobTimer.JobID = JobID;
ControlJobTimer.Interval = 30000;
ControlJobTimer.Tick += new EventHandler(JobTimer_Tick);
ControlJobTimer.Start();
}
类似于我们如何在表单上查询标准或自定义控件的集合 - 我们可以访问/查询这些自定义 JobTimer 控件的集合吗?
注意:出现此问题的原因是我没有看到这些控件停靠/放置在任何表单中,因此仅存在于程序的内存中。同样在停止/退出应用程序时,这些控件也消失了。
换句话说,如何获得应用程序中所有计时器的列表以及对其属性的访问权限?
【问题讨论】:
-
您可以通过创建
List<Timer>来获取计时器列表。踢开的门怎么样 ;) 你现在所拥有的并没有给你任何体面的方法来获得对计时器对象的引用。你有一个,但它只是一个局部变量,在 CreateTimer() 返回后是奇闻趣事。剩下的就是 Tick 事件处理程序中的 sender 参数。使用列表。
标签: c# winforms timer custom-controls programmatically-created