如何访问2类之间的1定时器

本文关键字:之间 定时器 2类 何访问 访问 | 更新日期: 2023-09-27 18:18:47

在我的项目的主要形式,我建立了一个定时器调用一个不同的类的对象来设置它的间隔。

    Clock.Interval = formSettings.GetTimeInTicks();
    Clock.Tick += new EventHandler(TimerEventProcessor);
    Clock.Start();

时间间隔是我的Settings类中的设置。当用户从时间组合框中选择新的时间时,我希望它重新启动在Main表单/类中建立的时钟,并使用新选择的时间。我如何从我的主类访问建立的"时钟"对象?

首先,我认为我可以使时钟成为它自己的类,并从主类和设置类实例化该类的对象,但是我认为这让我有两个计时器活动,这不是我想要的。我可以把时钟对象从主类传递到设置类吗?到这里最好的路线是什么?

编辑:我的主表单创建了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();
    }

这将使得当组合框被更改时,它将重新建立计时器设置并基于这些设置再次启动计时器。

如何访问2类之间的1定时器

我可以把Clock对象从主类传递给设置吗课吗?

可以,但是你传递的不是对象,而是对象的引用。