用C#制作有提示窗体的日程管理器

80酷酷网    80kuku.com

  

用C#制作有提示窗体的日程管理器。

以下为主窗体代码:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Timers;
using System.Data.OleDb;
namespace Calendar
{
 /// <summary>
 /// Form1 的摘要说明。
 /// </summary>
 public class Form1 : System.Windows.Forms.Form
 {
  private System.Windows.Forms.TabControl tabControl1;
  private System.Windows.Forms.TabPage first;
  private System.Windows.Forms.TabPage tabPage1;
  private System.Windows.Forms.Button button1;
  private System.Windows.Forms.Button button2;
  private System.Windows.Forms.Button button3;
  private System.Windows.Forms.Button button4;
  private System.Windows.Forms.Button button5;
  private System.Windows.Forms.TextBox textBox1;
  private System.Windows.Forms.TextBox textBox2;
  private System.Windows.Forms.Label label1;
  private System.Windows.Forms.Label label2;
  private System.Windows.Forms.Label label3;
  private System.Windows.Forms.GroupBox groupBox1;
  private System.Windows.Forms.TextBox textBox3;
  private System.Windows.Forms.TabPage tabPage2;
  private System.Windows.Forms.TabPage tabPage3;
  private System.Windows.Forms.Timer timer1;
  private System.Windows.Forms.TextBox textBox4;
  private System.Data.OleDb.OleDbConnection Myconn;
  private System.Data.OleDb.OleDbCommand Mycmd;
  private System.ComponentModel.IContainer components;

  public OleDbDataReader dr;
  public string info;
  private System.Windows.Forms.TextBox textBox5;
  private System.Windows.Forms.CheckedListBox checkedListBox1;
  private System.Windows.Forms.Label label4;
  private System.Windows.Forms.TextBox textBox6;
  private System.Data.OleDb.OleDbCommand insertcmd;
  public DateTime da;
  public Form1()
  {
   //
   // Windows 窗体设计器支持所必需的
   //
   InitializeComponent();

   //
   // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
   //
  }

  /// <summary>
  /// 清理所有正在使用的资源。
  /// </summary>
  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.tabControl1 = new System.Windows.Forms.TabControl();
   this.tabPage1 = new System.Windows.Forms.TabPage();
   this.textBox5 = new System.Windows.Forms.TextBox();
   this.groupBox1 = new System.Windows.Forms.GroupBox();
   this.textBox3 = new System.Windows.Forms.TextBox();
   this.label3 = new System.Windows.Forms.Label();
   this.label2 = new System.Windows.Forms.Label();
   this.label1 = new System.Windows.Forms.Label();
   this.textBox2 = new System.Windows.Forms.TextBox();
   this.textBox1 = new System.Windows.Forms.TextBox();
   this.button4 = new System.Windows.Forms.Button();
   this.button3 = new System.Windows.Forms.Button();
   this.first = new System.Windows.Forms.TabPage();
   this.button5 = new System.Windows.Forms.Button();
   this.tabPage2 = new System.Windows.Forms.TabPage();
   this.tabPage3 = new System.Windows.Forms.TabPage();
   this.button1 = new System.Windows.Forms.Button();
   this.button2 = new System.Windows.Forms.Button();
   this.timer1 = new System.Windows.Forms.Timer(this.components);
   this.textBox4 = new System.Windows.Forms.TextBox();
   this.Myconn = new System.Data.OleDb.OleDbConnection();
   this.Mycmd = new System.Data.OleDb.OleDbCommand();
   this.checkedListBox1 = new System.Windows.Forms.CheckedListBox();
   this.label4 = new System.Windows.Forms.Label();
   this.textBox6 = new System.Windows.Forms.TextBox();
   this.insertcmd = new System.Data.OleDb.OleDbCommand();
   this.tabControl1.SuspendLayout();
   this.tabPage1.SuspendLayout();
   this.groupBox1.SuspendLayout();
   this.first.SuspendLayout();
   this.SuspendLayout();
   //
   // tabControl1
   //
   this.tabControl1.Controls.Add(this.tabPage1);
   this.tabControl1.Controls.Add(this.first);
   this.tabControl1.Controls.Add(this.tabPage2);
   this.tabControl1.Controls.Add(this.tabPage3);
   this.tabControl1.Location = new System.Drawing.Point(0, 0);
   this.tabControl1.Name = "tabControl1";
   this.tabControl1.SelectedIndex = 0;
   this.tabControl1.Size = new System.Drawing.Size(392, 320);
   this.tabControl1.TabIndex = 0;
   this.tabControl1.SelectedIndexChanged += new System.EventHandler(this.tabControl1_SelectedIndexChanged);
   //
   // tabPage1
   //
   this.tabPage1.Controls.Add(this.textBox5);
   this.tabPage1.Controls.Add(this.groupBox1);
   this.tabPage1.Controls.Add(this.label3);
   this.tabPage1.Controls.Add(this.label2);
   this.tabPage1.Controls.Add(this.label1);
   this.tabPage1.Controls.Add(this.textBox2);
   this.tabPage1.Controls.Add(this.textBox1);
   this.tabPage1.Controls.Add(this.button4);
   this.tabPage1.Controls.Add(this.button3);
   this.tabPage1.Location = new System.Drawing.Point(4, 22);
   this.tabPage1.Name = "tabPage1";
   this.tabPage1.Size = new System.Drawing.Size(384, 294);
   this.tabPage1.TabIndex = 1;
   this.tabPage1.Text = "添加提示";
   //
   // textBox5
   //
   this.textBox5.AutoSize = false;
   this.textBox5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
   this.textBox5.Location = new System.Drawing.Point(8, 256);
   this.textBox5.Name = "textBox5";
   this.textBox5.ReadOnly = true;
   this.textBox5.Size = new System.Drawing.Size(192, 22);
   this.textBox5.TabIndex = 8;
   this.textBox5.Text = "";
   //
   // groupBox1
   //
   this.groupBox1.Controls.Add(this.textBox6);
   this.groupBox1.Controls.Add(this.label4);
   this.groupBox1.Controls.Add(this.textBox3);
   this.groupBox1.Location = new System.Drawing.Point(8, 74);
   this.groupBox1.Name = "groupBox1";
   this.groupBox1.Size = new System.Drawing.Size(368, 160);
   this.groupBox1.TabIndex = 7;
   this.groupBox1.TabStop = false;
   this.groupBox1.Text = "提示内容:";
   //
   // textBox3
   //
   this.textBox3.Location = new System.Drawing.Point(8, 64);
   this.textBox3.Multiline = true;
   this.textBox3.Name = "textBox3";
   this.textBox3.Size = new System.Drawing.Size(352, 88);
   this.textBox3.TabIndex = 0;
   this.textBox3.Text = "";
   //
   // label3
   //
   this.label3.Location = new System.Drawing.Point(64, 56);
   this.label3.Name = "label3";
   this.label3.Size = new System.Drawing.Size(304, 23);
   this.label3.TabIndex = 6;
   this.label3.Text = "例:2005-12-1  14:30:00";
   //
   // label2
   //
   this.label2.Location = new System.Drawing.Point(215, 19);
   this.label2.Name = "label2";
   this.label2.Size = new System.Drawing.Size(48, 23);
   this.label2.TabIndex = 5;
   this.label2.Text = "时间:";
   this.label2.TextAlign = System.Drawing.ContentAlignment.TopRight;
   //
   // label1
   //
   this.label1.Location = new System.Drawing.Point(8, 22);
   this.label1.Name = "label1";
   this.label1.Size = new System.Drawing.Size(56, 23);
   this.label1.TabIndex = 4;
   this.label1.Text = "日期:";
   this.label1.TextAlign = System.Drawing.ContentAlignment.TopRight;
   //
   // textBox2
   //
   this.textBox2.Location = new System.Drawing.Point(270, 16);
   this.textBox2.Name = "textBox2";
   this.textBox2.TabIndex = 3;
   this.textBox2.Text = "";
   //
   // textBox1
   //
   this.textBox1.Location = new System.Drawing.Point(72, 16);
   this.textBox1.Name = "textBox1";
   this.textBox1.Size = new System.Drawing.Size(136, 22);
   this.textBox1.TabIndex = 2;
   this.textBox1.Text = "";
   this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
   //
   // button4
   //
   this.button4.Location = new System.Drawing.Point(296, 256);
   this.button4.Name = "button4";
   this.button4.TabIndex = 1;
   this.button4.Text = "取消";
   this.button4.Click += new System.EventHandler(this.button4_Click);
   //
   // button3
   //
   this.button3.Location = new System.Drawing.Point(208, 256);
   this.button3.Name = "button3";
   this.button3.TabIndex = 0;
   this.button3.Text = "添加";
   this.button3.Click += new System.EventHandler(this.button3_Click);
   //
   // first
   //
   this.first.Controls.Add(this.checkedListBox1);
   this.first.Controls.Add(this.button5);
   this.first.Location = new System.Drawing.Point(4, 22);
   this.first.Name = "first";
   this.first.Size = new System.Drawing.Size(384, 294);
   this.first.TabIndex = 0;
   this.first.Text = "当前内容";
   this.first.Click += new System.EventHandler(this.first_Click);
   //
   // button5
   //
   this.button5.Location = new System.Drawing.Point(248, 256);
   this.button5.Name = "button5";
   this.button5.TabIndex = 1;
   this.button5.Text = "删除所选";
   //
   // tabPage2
   //
   this.tabPage2.Location = new System.Drawing.Point(4, 22);
   this.tabPage2.Name = "tabPage2";
   this.tabPage2.Size = new System.Drawing.Size(384, 294);
   this.tabPage2.TabIndex = 2;
   this.tabPage2.Text = "其他";
   //
   // tabPage3
   //
   this.tabPage3.Location = new System.Drawing.Point(4, 22);
   this.tabPage3.Name = "tabPage3";
   this.tabPage3.Size = new System.Drawing.Size(384, 294);
   this.tabPage3.TabIndex = 3;
   this.tabPage3.Text = "使用说明";
   //
   // button1
   //
   this.button1.Location = new System.Drawing.Point(208, 328);
   this.button1.Name = "button1";
   this.button1.TabIndex = 1;
   this.button1.Text = "确定";
   this.button1.Click += new System.EventHandler(this.button1_Click_1);
   //
   // button2
   //
   this.button2.Location = new System.Drawing.Point(296, 328);
   this.button2.Name = "button2";
   this.button2.TabIndex = 2;
   this.button2.Text = "退出";
   this.button2.Click += new System.EventHandler(this.button2_Click);
   //
   // timer1
   //
   this.timer1.Enabled = true;
   this.timer1.Interval = 1000;
   this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
   //
   // textBox4
   //
   this.textBox4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
   this.textBox4.Location = new System.Drawing.Point(8, 328);
   this.textBox4.Name = "textBox4";
   this.textBox4.ReadOnly = true;
   this.textBox4.Size = new System.Drawing.Size(192, 22);
   this.textBox4.TabIndex = 3;
   this.textBox4.Text = "当前时间";
   this.textBox4.WordWrap = false;
   //
   // Myconn
   //
   this.Myconn.ConnectionString = "Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Database Password=;Data Source=""F:\Visual Studio Projects\Calendar\bin\Debug\calendar.mdb"";Password=;Jet OLEDB:Engine Type=5;Jet OLEDB:Global Bulk Transactions=1;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:New Database Password=;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB:Encrypt Database=False";
   //
   // Mycmd
   //
   this.Mycmd.CommandText = "SELECT calendar.*, [datetime] AS Expr1, info AS Expr2 FROM calendar ORDER BY id";
   this.Mycmd.Connection = this.Myconn;
   //
   // checkedListBox1
   //
   this.checkedListBox1.Location = new System.Drawing.Point(6, 16);
   this.checkedListBox1.Name = "checkedListBox1";
   this.checkedListBox1.Size = new System.Drawing.Size(376, 225);
   this.checkedListBox1.TabIndex = 3;
   //
   // label4
   //
   this.label4.Location = new System.Drawing.Point(16, 24);
   this.label4.Name = "label4";
   this.label4.Size = new System.Drawing.Size(48, 23);
   this.label4.TabIndex = 1;
   this.label4.Text = "标题:";
   this.label4.TextAlign = System.Drawing.ContentAlignment.TopRight;
   //
   // textBox6
   //
   this.textBox6.Location = new System.Drawing.Point(72, 24);
   this.textBox6.Name = "textBox6";
   this.textBox6.Size = new System.Drawing.Size(184, 22);
   this.textBox6.TabIndex = 2;
   this.textBox6.Text = "";
   //
   // insertcmd
   //
   this.insertcmd.Connection = this.Myconn;
   //
   // Form1
   //
   this.AutoScaleBaseSize = new System.Drawing.Size(7, 15);
   this.ClientSize = new System.Drawing.Size(392, 363);
   this.Controls.Add(this.textBox4);
   this.Controls.Add(this.button2);
   this.Controls.Add(this.button1);
   this.Controls.Add(this.tabControl1);
   this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
   this.MaximizeBox = false;
   this.Name = "Form1";
   this.Text = "Calendar By Sinory Studio";
   this.Load += new System.EventHandler(this.Form1_Load);
   this.tabControl1.ResumeLayout(false);
   this.tabPage1.ResumeLayout(false);
   this.groupBox1.ResumeLayout(false);
   this.first.ResumeLayout(false);
   this.ResumeLayout(false);

  }
  #endregion

  /// <summary>
  /// 应用程序的主入口点。
  /// </summary>
  [STAThread]
  static void Main()
  {
   Application.Run(new Form1());
  }
  
  
  private void Form1_Load(object sender, System.EventArgs e)
  {
   this.timer1.Enabled=true;//设置timer控件的属性
  
   select();//从数据库中读取最近的一次提示
    
  }
  private void button1_Click(object sender, System.EventArgs e)
  {
   
   
  }

  private void tabControl1_SelectedIndexChanged(object sender, System.EventArgs e)
  {
  
  }

  private void button2_Click(object sender, System.EventArgs e)
  {
   this.Close();//退出
  }

  private void first_Click(object sender, System.EventArgs e)
  {
   
  }

  private void textBox1_TextChanged(object sender, System.EventArgs e)
  {
  
  }
  private void select()
  {
   DateTime dn=DateTime.Now;
   DateTime datetime;
   Myconn.Open();
   dr=Mycmd.ExecuteReader();
   string title,id;
   da=DateTime.Parse("3000-1-1 01:01:01");//设一个大点的值
   while(dr.Read())//读取数据库
   {
    datetime=DateTime.Parse(dr["datetime"].ToString());
    id=dr["id"].ToString();
    title=dr["title"].ToString();
    this.checkedListBox1.Items.Add(id+"    "+datetime.ToString()+"    "+title);
    if(datetime>dn&&datetime<da)
    {
     da=datetime;//取值
     info=dr["info"].ToString();
     
    }
   }
   dr.Close();
   Myconn.Close();//关闭数据库
   
            this.textBox5.Text="Next:"+da.ToString();//显示最近的一次提示的时间

  }
  private void button1_Click_1(object sender, System.EventArgs e)
  {
      this.Hide();//主窗体隐藏
  }
       
  private void timer1_Tick(object sender, System.EventArgs e)
  {
   //接收当前日期和时间,用于即时显示
   string CurrTime=System.DateTime.Now.ToString();
   this.textBox4.Text="当前时间:"+CurrTime;
    if(DateTime.Parse(CurrTime)==da)
    {
     clew clew1=new clew();//设置提示窗体的属性
     clew1.HeightMax=150;
     clew1.WidthMax=180;
     clew1.Info=info;
     clew1.ScrollShow();
     select();
    }
  
     
   
  }

  private void button4_Click(object sender, System.EventArgs e)
  {
   this.textBox1.Text="";
   this.textBox2.Text="";
   this.textBox3.Text="";
   this.textBox6.Text="";
  }

  private void button3_Click(object sender, System.EventArgs e)
  {
   if(this.textBox1.Text!=""&&this.textBox2.Text!=""&&this.textBox3.Text!=""&&this.textBox6.Text!="")
   {
    string indate=this.textBox1+" "+this.textBox2.Text;
    insertcmd.CommandText="insert into calendar(datetime,info,title) values('"+indate+"','"+this.textBox3.ToString()+"','"+this.textBox6.ToString()+"')";
                Myconn.Open();
    insertcmd.ExecuteNonQuery();
    Myconn.Close();
    select();
    MessageBox.Show("添加成功!!");
   }
   else
   {
    MessageBox.Show("请按指定格式填写并且各项不能为空!!");
   }
  }

  
 }
}
以下为提示窗体代码:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;

namespace Calendar
{
 /// <summary>
 /// clew 的摘要说明。
 /// </summary>
 public class clew : System.Windows.Forms.Form
 {
  private System.Windows.Forms.Timer timer1;
  private System.Windows.Forms.Timer timer2;
  private System.Windows.Forms.Timer timer3;
  private System.Windows.Forms.Label label1;
  private System.Windows.Forms.Label label2;
  private System.ComponentModel.IContainer components;

  public clew()
  {
   //
   // Windows 窗体设计器支持所必需的
   //
   InitializeComponent();

   //
   // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
   //
  }

  /// <summary>
  /// 清理所有正在使用的资源。
  /// </summary>
  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();
   this.timer1 = new System.Windows.Forms.Timer(this.components);
   this.timer2 = new System.Windows.Forms.Timer(this.components);
   this.timer3 = new System.Windows.Forms.Timer(this.components);
   this.label1 = new System.Windows.Forms.Label();
   this.label2 = new System.Windows.Forms.Label();
   this.SuspendLayout();
   //
   // timer1
   //
   this.timer1.Interval = 10;
   this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
   //
   // timer2
   //
   this.timer2.Interval = 10;
   this.timer2.Tick += new System.EventHandler(this.timer2_Tick);
   //
   // timer3
   //
   this.timer3.Interval = 10;
   this.timer3.Tick += new System.EventHandler(this.timer3_Tick);
   //
   // label1
   //
   this.label1.Location = new System.Drawing.Point(24, 40);
   this.label1.Name = "label1";
   this.label1.Size = new System.Drawing.Size(152, 96);
   this.label1.TabIndex = 0;
   //
   // label2
   //
   this.label2.Location = new System.Drawing.Point(0, 0);
   this.label2.Name = "label2";
   this.label2.Size = new System.Drawing.Size(192, 24);
   this.label2.TabIndex = 1;
   //
   // clew
   //
   this.AutoScaleBaseSize = new System.Drawing.Size(7, 15);
   this.BackColor = System.Drawing.SystemColors.InactiveCaption;
   this.ClientSize = new System.Drawing.Size(194, 150);
   this.Controls.Add(this.label2);
   this.Controls.Add(this.label1);
   this.Cursor = System.Windows.Forms.Cursors.Hand;
   this.ForeColor = System.Drawing.SystemColors.ActiveCaptionText;
   this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
   this.MaximizeBox = false;
   this.MinimizeBox = false;
   this.Name = "clew";
   this.ShowInTaskbar = false;
   this.Text = "提示……";
   this.TopMost = true;
   this.Load += new System.EventHandler(this.clew_Load);
   this.ResumeLayout(false);

  }
  #endregion
  private string info;//设置提示窗体的内容;
  public string Info
  {
   set
   {
    info=value;
   }
   get
   {
    return info;
   }
  }
  private int heightMax, widthMax;//设置窗体显示的大小的属性
  public int HeightMax
  {
   set
   {
    heightMax = value; 
   }
   get
   {
    return heightMax;
   }
  }

  public int WidthMax
  {
   set
   {
    widthMax = value;
   }
   get
   {
    return widthMax;
   }
  }
  public void ScrollShow()
  {
   this.Width = widthMax;
   this.Height = 0;
   this.Show();
   this.timer1.Enabled = true;
  }

  public int StayTime = 5000;//窗体的停留时间
  //窗体的滚出与滚入方法
  private void ScrollUp()
  {
   if(Height < heightMax)
   {
    this.Height += 3;
    this.Location = new Point(this.Location.X, this.Location.Y - 3);
   }
   else
   {
    this.timer1.Enabled = false;
    this.timer2.Enabled = true;
   }
  }

  private void ScrollDown()
  {
   if(Height > 3)
   {
    this.Height -= 3;
    this.Location = new Point(this.Location.X, this.Location.Y + 3);
   }
   else
   {
    this.timer3.Enabled = false;
    this.Close();
   }
  }

      

  private void clew_Load(object sender, System.EventArgs e)
  {
     string dNow;
   dNow=DateTime.Now.ToShortTimeString().ToString();
  
            this.label2.Text="现在时刻是:"+dNow;
   this.label1.Text=info;
   Screen[] screens = Screen.AllScreens;
   Screen screen = screens[0];//获取屏幕变量
   this.Location = new Point(screen.WorkingArea.Width - widthMax - 20, screen.WorkingArea.Height - 34);//WorkingArea为Windows桌面的工作区
   this.timer2.Interval = StayTime;

  
  }

  private void timer1_Tick(object sender, System.EventArgs e)
  {
   ScrollUp();

  }

  private void timer2_Tick(object sender, System.EventArgs e)
  {
   timer2.Enabled = false;
   timer3.Enabled = true;

  }

  private void timer3_Tick(object sender, System.EventArgs e)
  {
   ScrollDown();

  }
 }
}
//由于是从VS2003下编的所以这些代码不能直接运行,但可以提供一个思路,另外还可以加个托盘图标或,其他小功能。

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: