在我的项目主窗体中,我建立了一个定时器,它调用不同类的对象来设置其间隔。
Clock.Interval = formSettings.GetTimeInTicks();
Clock.Tick += new EventHandler(TimerEventProcessor);
Clock.Start();
时间间隔是我的“设置”类中的设置。当用户从组合框中选择新的时间时,我希望它重新启动在我的主表单/类中建立的时钟,并使用新选择的时间。如何从我的主类访问已建立的“时钟”对象?
首先,我认为我可以将时钟作为自己的类,并从主类和设置类中实例化该类的对象,但是我认为这使得我有两个定时器处于活动状态而不是我想要的。我可以将Clock对象从主类传递给设置类吗?这里最好的路线是什么?
编辑: 我的主窗体创建了Timer
Timer Clock = new Timer();
然后我确定每个定时器周期应该是的时间,然后启动定时器。
public void MakeTheClockTimer()
{
Clock.Interval = formSettings.GetTimeInTicks();
Clock.Tick += new EventHandler(TimerEventProcessor);
Clock.Start();
}
我的第二个表单被引用为“formSettings”。此表单包含一个组合框,其中包含不同的时间选择,例如1分钟,15分钟等。当程序启动时,它会执行以下启动:
public Form1()
{
InitializeComponent();
MakeTheClockTimer();
}
所以程序启动,查看设置表单,返回选择的时间,然后启动计时器。我想要做的是如果用户选择不同的时间,我希望程序基本上再次调用“MakeTheClockTimer()”。如果时间选择已更改,我需要它重新启动计时器。如下所示:
private void cbxTime_SelectedIndexChanged(object sender, EventArgs e)
{
MainFormObject.MakeTheClockTimer();
}
这样可以使组合框更改时,它会重新建立计时器设置并根据这些设置再次启动计时器。
答案 0 :(得分:0)
我可以将Clock对象从主类传递给设置 类?
是的,但是你不会传递对象,你将传递对象的引用。