本文所述是一个小巧且功能简单的C#闹钟程序代码AlarmClock,程序涉及到了AxInterop.MSMask.dll与Interop.MSMask.dll两个控件,对编写时间闹钟或许有点参考价值。
完整实例代码如下:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace AlarmClock
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.MonthCalendar monthCalendar1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.ListBox listBox1;
private AxMSMask.AxMaskEdBox mask1;
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.Button buttonAdd;
private System.Windows.Forms.Button buttonDel;
private System.ComponentModel.IContainer components;
public Form1()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
this.monthCalendar1 = new System.Windows.Forms.MonthCalendar();
this.label1 = new System.Windows.Forms.Label();
this.mask1 = new AxMSMask.AxMaskEdBox();
this.textBox1 = new System.Windows.Forms.TextBox();
this.listBox1 = new System.Windows.Forms.ListBox();
this.buttonAdd = new System.Windows.Forms.Button();
this.buttonDel = new System.Windows.Forms.Button();
this.timer1 = new System.Windows.Forms.Timer(this.components);
((System.ComponentModel.ISupportInitialize)(this.mask1)).BeginInit();
this.SuspendLayout();
//
// monthCalendar1
//
this.monthCalendar1.Location = new System.Drawing.Point(12, 112);
this.monthCalendar1.Name = "monthCalendar1";
this.monthCalendar1.TabIndex = 0;
//
// label1
//
this.label1.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
this.label1.Location = new System.Drawing.Point(8, 16);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(88, 23);
this.label1.TabIndex = 1;
this.label1.Text = "label1";
//
// mask1
//
this.mask1.Location = new System.Drawing.Point(16, 48);
this.mask1.Name = "mask1";
this.mask1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("mask1.OcxState")));
this.mask1.Size = new System.Drawing.Size(88, 23);
this.mask1.TabIndex = 2;
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(16, 80);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(88, 21);
this.textBox1.TabIndex = 3;
this.textBox1.Text = "输入内容";
//
// listBox1
//
this.listBox1.ItemHeight = 12;
this.listBox1.Location = new System.Drawing.Point(120, 16);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(152, 52);
this.listBox1.TabIndex = 4;
//
// buttonAdd
//
this.buttonAdd.Location = new System.Drawing.Point(120, 80);
this.buttonAdd.Name = "buttonAdd";
this.buttonAdd.Size = new System.Drawing.Size(56, 24);
this.buttonAdd.TabIndex = 5;
this.buttonAdd.Text = "添加";
this.buttonAdd.Click += new System.EventHandler(this.buttonAdd_Click);
//
// buttonDel
//
this.buttonDel.Location = new System.Drawing.Point(216, 80);
this.buttonDel.Name = "buttonDel";
this.buttonDel.Size = new System.Drawing.Size(56, 24);
this.buttonDel.TabIndex = 6;
this.buttonDel.Text = "删除";
this.buttonDel.Click += new System.EventHandler(this.buttonDel_Click);
//
// timer1
//
this.timer1.Enabled = true;
this.timer1.Interval = 1000;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.Add(this.buttonDel);
this.Controls.Add(this.buttonAdd);
this.Controls.Add(this.listBox1);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.mask1);
this.Controls.Add(this.label1);
this.Controls.Add(this.monthCalendar1);
this.Name = "Form1";
this.Text = "小闹钟";
this.Load += new System.EventHandler(this.Form1_Load);
((System.ComponentModel.ISupportInitialize)(this.mask1)).EndInit();
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void timer1_Tick(object sender, System.EventArgs e)
{
//计时事件
label1.Text = System.DateTime.Now.ToLongTimeString();
//定时功能
int i;
//当前时间信息
int hh = DateTime.Now.Hour;
int mm = DateTime.Now.Minute;
int ss = DateTime.Now.Second;
for( i = 1; i <= listBox1.Items.Count; i++ )
{
string mytime;
int myhh, mymm, myss;
//获取事件字符串
mytime = listBox1.Items[i-1].ToString( );
myhh = int.Parse( mytime.Substring(0,2) );
if( hh == myhh )
{
mymm = int.Parse( mytime.Substring(2,2) );
if( mm == mymm )
{
myss = int.Parse( mytime.Substring(4,2) );
if( ss == myss )
{
string tempmsg = mytime.Substring(7, mytime.Length - 7 );
MessageBox.Show( tempmsg, "闹钟提示" );
}
}
}
}
}
private void buttonAdd_Click(object sender, System.EventArgs e)
{
String tempstr;
int tss;
int tmm;
int thh;
//获取用户输入的时间
tempstr = mask1.ClipText;
//判断输入是否完整
if( tempstr.Length < 6 )
{
MessageBox.Show( "输入格式错误,不足位请补0", "格式错误" );
//设置焦点
mask1.Focus( );
//设置重新输入起始位置
mask1.SelStart = 0;
//设置选择字符的长度
mask1.SelLength = 8;
return;
}
//取得小时数并加以判断
thh = int.Parse( tempstr.Substring(0,2) );
if( thh < 0 || thh > 23 )
{
MessageBox.Show( "输入小时数应在0到23之间", "小时数错误" );
mask1.Focus( );
mask1.SelStart = 0;
mask1.SelLength = 2;
return;
}
//获取分钟数并加以判断
tmm = int.Parse( tempstr.Substring(2,2) );
if( tmm < 0 || tmm > 60 )
{
MessageBox.Show( "输入分钟数应在0到60之间", "分钟数错误" );
mask1.Focus( );
mask1.SelStart = 3;
mask1.SelLength = 2;
return;
}
//获取秒钟数并加以判断
tss = int.Parse( tempstr.Substring(4,2) );
if( tss < 0 || tss > 60 )
{
MessageBox.Show( "输入秒钟数应在0到60之间", "秒钟数错误" );
mask1.Focus( );
mask1.SelStart = 6;
mask1.SelLength = 2;
return;
}
//将定时事件添加到ListBox中
tempstr = tempstr + "-" + textBox1.Text;
listBox1.Items.Add( tempstr );
textBox1.Text = "";
}
private void buttonDel_Click(object sender, System.EventArgs e)
{
//如果列表中存在定时项
if( listBox1.Items.Count > 0 )
{
//删除选中的项
if( listBox1.SelectedItems.Count > 0 )
{
listBox1.Items.RemoveAt( listBox1.SelectedIndex );
}
}
}
private void Form1_Load(object sender, System.EventArgs e)
{
label1.Text = System.DateTime.Now.ToLongTimeString();
}
}
}
本文实例代码备有较为详尽的注释,可以帮助大家很好的理解代码段的功能,希望本文所述实例对大家的C#程序设计有一定的帮助作用。 |