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

时间:2010-11-19 20:35:17

标签: c#

我正在尝试制作可编程闹钟。它应该在不同的时刻输出旋律(.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();
}

2 个答案:

答案 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 };
}
相关问题