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

C# 制作具有多个闹钟时间的闹钟,c#,C#,我想做一个可编程的闹钟。它应该在不同的时刻输出旋律(.wav)。我用一个用户控件制作了一个数字时钟。我有一个计时器,每秒钟显示一个进度条,还有一个按钮启动进程。我确切地知道我想要的时间,所以我不需要任何其他按钮。我做了一些函数来完成我需要的时间 public void suna3() { userControl11.Ora = 01; userControl11.Min = 37; userControl11.Sec = 50; } 按一下按钮,我给他们打电话。但当我启

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

对于每个报警时间,您都需要一个
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;
}
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 };
}
另一种方法是更改
usercontrol
,使其接受时间列表,或具有
AddAlarm()
方法。大概是这样的:

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

//...

public void suna3()
{
    userControl13.Ora = 01;
    userControl13.Min = 37;
    userControl13.Sec = 50;
}
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 };
}

对于每个报警时间,您都需要一个
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;
}
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 };
}
另一种方法是更改
usercontrol
,使其接受时间列表,或具有
AddAlarm()
方法。大概是这样的:

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

//...

public void suna3()
{
    userControl13.Ora = 01;
    userControl13.Min = 37;
    userControl13.Sec = 50;
}
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 };
}
我认为问题在于,您对三个不同的事件使用相同的计时器,将其设置更改了三次。这只会导致使用最终设置-旧设置不会被记住-它们会被覆盖

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

我认为问题在于,您对三个不同的事件使用相同的计时器,将其设置更改三次。这只会导致使用最终设置-旧设置不会被记住-它们会被覆盖


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

我不理解您的问题。你们能说得更清楚一点吗?你们想让它多次做什么?是否同时在不同的控件中显示它们?一个接一个地倒计时?我不太明白,你能再发一些代码吗?例如,suna1()和suna2()中有什么?你的意思是“如何使自动控制刷新”?我不理解你的问题。你们能说得更清楚一点吗?你们想让它多次做什么?是否同时在不同的控件中显示它们?一个接一个地倒计时?我不太明白,你能再发一些代码吗?例如,suna1()和suna2()中的内容是什么?您的意思是“如何使自动控制刷新”?