制作具有多个闹钟时间的闹钟

问题描述:

我想制作一个可编程的闹钟。它应该在不同的时刻输出一个旋律(.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

您需要在每次报警时间为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 }; 
} 

认为的问题是,您使用的是同一个定时器三种不同的事件,改变了三次的设置。这导致只使用最终设置 - 旧设置不被记住 - 它们被覆盖。

解决方案是为每个事件创建一个新的计时器,每个计时器都有自己独立的设置。