在我的項目主窗體中,我建立了一個計時器,它調用不同類的對象來設置它的時間間隔。如何訪問2個類之間的1個定時器?
Clock.Interval = formSettings.GetTimeInTicks();
Clock.Tick += new EventHandler(TimerEventProcessor);
Clock.Start();
時間間隔是我的設置類中的設置。當用戶從組合框中選擇一個新時間時,我希望它重新啓動在我的主窗體/類中建立的時鐘,並使用新選擇的時間。我如何從我的主類訪問已建立的「Clock」對象?
首先,我想我可以使時鐘成爲自己的類,並從主類和設置類實例化該類的對象,但是我認爲這給我帶來了兩個不是我想要的定時器活動。我可以將Clock類從主類傳遞給設置類嗎?這裏最好的路線是什麼?
編輯: 我的主要形式創建定時器
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();
}
這將使它所以當組合框被改變,它會重新建立定時器設置,並重新開始基於這些設置定時器。
我不是100%清楚你正在做什麼,但考慮使用單身時鐘對象,所以你總是隻有一個。隨時發佈更多的代碼,以澄清你的意圖 – 2011-12-24 02:36:43