2010-11-19 180 views
0

我想製作一個可編程的鬧鐘。它應該在不同的時刻輸出一個旋律(.wav)。我用一個用戶控件來製作一個數字時鐘。我有一個計時器來顯示每秒進度條和一個啓動進程的按鈕。我知道我想要的時間,所以我不需要任何其他按鈕。我完成了一些我需要的時間。製作具有多個鬧鐘時間的鬧鐘

public void suna3() 
{ 
    userControl11.Ora = 01; 
    userControl11.Min = 37; 
    userControl11.Sec = 50; 
} 

並在按鈕上點擊我給他們打電話。但是當我啓動程序時,它只是最後一次做出來的(最後一個功能)。我怎樣才能使所有的功能?

private void button3_Click(object sender, EventArgs e) 
{ 
    userControl11.Activ = true; 
    suna1(); 

    userControl11.Activ = true; 
    suna2(); 
} 
+2

我不明白你的問題。你能更清楚一點嗎? – 2010-11-19 20:38:08

+0

你想多次做什麼?在不同的控件中同時顯示它們?把它們連在一起? – CodesInChaos 2010-11-19 20:40:32

+0

我不太清楚我的理解,你能發表更多的代碼嗎?例如,suna1()和suna2()中的內容是什麼? – Brosto 2010-11-19 20:40:49

回答

1

您需要在每次報警時間爲usercontrol,或更改用戶的控制,使其在需要的時候數組在觸發報警。

對於多usercontrol情況下,你的代碼可能是這個樣子:

public void suna1() 
{ 
    userControl11.Ora = 02; 
    userControl11.Min = 27; 
    userControl11.Sec = 20; 
} 

//... 

public void suna3() 
{ 
    userControl13.Ora = 01; 
    userControl13.Min = 37; 
    userControl13.Sec = 50; 
} 

另一種方法是改變你的usercontrol,使其接受的時間列表,或有AddAlarm()方法。事情是這樣的:

public void suna1() 
{ 
    userControl11.Alarms.Add(new Alarm() { Ora = 02, Min = 27, Sec = 20 }; 
    //or "userControl1.AddAlarm(2, 27, 20);" if you go the method route 
} 

//... 

public void suna3() 
{ 
    userControl11.Alarms.Add(new Alarm() { Ora = 01, Min = 37, Sec = 50 }; 
} 
2

認爲的問題是,您使用的是同一個定時器三種不同的事件,改變了三次的設置。這導致只使用最終設置 - 舊設置不被記住 - 它們被覆蓋。

解決方案是爲每個事件創建一個新的計時器,每個計時器都有自己獨立的設置。