我正在尝试制作可编程闹钟。它应该在不同的时刻输出旋律(.wav)。我使用usercontrol制作数字时钟。我有一个计时器,用于显示每秒的进度条和一个启动进程的按钮。我确切地知道我想要的时间,所以我不需要任何其他按钮。我完成了一些功能,完成了我需要的时间。
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();
}
答案 0 :(得分:2)
我认为问题在于您正在为三个不同的事件使用相同的计时器,将其设置更改三次。这导致仅使用最终设置 - 不记住旧设置 - 它们将被覆盖。
解决方案是为每个事件创建一个新的计时器,每个计时器都有自己独立的设置。
答案 1 :(得分: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 };
}