用Windowsformapp设计一个闹钟,时间到达时有音乐
时间: 2024-02-25 22:52:10 浏览: 16
好的,以下是使用 Windows Form App 设计一个简单的闹钟程序,时间到达时会播放音乐的示例代码:
1. 创建一个新的 Windows Form App 项目。
2. 在窗体中添加一个 Label 控件用于显示当前时间,一个 DateTimePicker 控件用于设置闹钟时间,一个 Button 控件用于设置闹钟,一个 Timer 控件用于定时检查当前时间是否等于闹钟时间,以及一个 AxWindowsMediaPlayer 控件用于播放音乐。
3. 设置 DateTimePicker 控件的 Format 属性为 Custom,CustomFormat 属性为 HH:mm:ss,以便用户可以选择小时、分钟和秒钟。
4. 在 Button 的 Click 事件中,获取 DateTimePicker 控件的值,并将其转换为 TimeSpan 类型,然后使用 Timer 控件的 Interval 属性将其设置为闹钟时间与当前时间之间的时间间隔,最后启动 Timer 控件。
5. 在 Timer 的 Tick 事件中,检查当前时间是否等于闹钟时间,如果是,则停止 Timer 控件,然后使用 AxWindowsMediaPlayer 控件播放音乐。
下面是 C# 代码示例:
```
public partial class Form1 : Form
{
private TimeSpan alarmTime;
private Timer timer;
public Form1()
{
InitializeComponent();
timer = new Timer();
timer.Tick += Timer_Tick;
timer.Interval = 1000;
}
private void Form1_Load(object sender, EventArgs e)
{
timer.Start();
}
private void btnSetAlarm_Click(object sender, EventArgs e)
{
alarmTime = dateTimePicker.Value.TimeOfDay;
TimeSpan timeLeft = alarmTime - DateTime.Now.TimeOfDay;
if (timeLeft.TotalSeconds <= 0)
{
MessageBox.Show("Please enter a future time.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
timer.Interval = (int)timeLeft.TotalMilliseconds;
timer.Start();
MessageBox.Show("Alarm set for " + alarmTime.ToString("hh\\:mm\\:ss tt"), "Alarm Set", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void Timer_Tick(object sender, EventArgs e)
{
if (DateTime.Now.TimeOfDay >= alarmTime)
{
timer.Stop();
axWindowsMediaPlayer.URL = "music.mp3";
axWindowsMediaPlayer.Ctlcontrols.play();
}
lblTime.Text = DateTime.Now.ToString("hh:mm:ss tt");
}
}
```
注意:在使用 AxWindowsMediaPlayer 控件播放音乐之前,需要将其添加到窗体并引用 Windows Media Player 组件。此外,需要将音乐文件(如上面示例代码中的 music.mp3)添加到项目中并设置其“复制到输出目录”属性为“如果较新则复制”。