基于C#的时钟软件编程

/ 0评 / 0赞 / 

软件要求

实现过程

timer控件刷新当前时间

//命名释义 lav时钟:label(标签)
lab时钟.Text = System.DateTime.Now.ToString("yyyy年MM月dd HH时mm分ss秒");

直接调用系统的时间获取方法,timer每跳一次将会刷新一次时间(lbl的名字命名错了 汗)

判断三个输入框内输入的是否是数字

private void textBox_小时_KeyPress(object sender, KeyPressEventArgs e)
{
    int key = e.KeyChar;
    if ((key < '0' || key > '9') && (key != 8))
        e.Handled = true;

}

private void textBox_分钟_KeyPress(object sender, KeyPressEventArgs e)
{
    int key = e.KeyChar;
    if ((key < '0' || key > '9') && (key != 8))
        e.Handled = true;
}

private void textBox_秒_KeyPress(object sender, KeyPressEventArgs e)
{
    int key = e.KeyChar;
    if ((key < '0' || key > '9') && (key != 8))
        e.Handled = true;
}

TextBox事件解析:

Handled的作用为:获取或设置一个值,该值指示是否处理过KeyPress 事件

点击按钮的时候收集当前时间与用户期望的提醒时间

private DateTime dt;//全局变量

private void btnset闹钟_Click(object sender, EventArgs e)
{
    dt = DateTime.Now;
    dt = dt.AddHours(Convert.ToDouble(textBox_小时.Text));
    dt = dt.AddMinutes(Convert.ToDouble(textBox_分钟.Text));
    dt = dt.AddSeconds(Convert.ToDouble(textBox_秒.Text));
    //MessageBox.Show(dt.ToString());
    Alarm_clock.Enabled = true;
}

从 Windows 窗体播放资源中嵌入的声音

private void playSoundFromResource()
{
    string egm = "../../Resources/audio.wav";//定义变量来存储音频路径
    SoundPlayer bgm = new SoundPlayer(egm);//控制声音播放
    bgm.Play();//开始播放音乐
}

触发声音的条件

private void Alarm_clock_Tick(object sender, EventArgs e)
{            
    if  (dt.Year == DateTime.Now.Year
        && dt.Month == DateTime.Now.Month
        && dt.Day == DateTime.Now.Day 
        && dt.Hour == DateTime.Now.Hour
        && dt.Minute == DateTime.Now.Minute
        && dt.Second == DateTime.Now.Second)
    {
        playSoundFromResource();
    }
}

源码及软件地址:

https://gitee.com/lingyun67/alarm-clock-demo

发表回复

您的电子邮箱地址不会被公开。