Form1.cs
上传用户:lxycoco
上传日期:2022-07-21
资源大小:38457k
文件大小:5k
源码类别:

C#编程

开发平台:

Others

  1. using System;
  2. using System.Drawing;
  3. using System.Collections;
  4. using System.ComponentModel;
  5. using System.Windows.Forms;
  6. using System.Data;
  7. using System.IO;
  8. namespace SimpleEvent
  9. {
  10. /// <summary>
  11. /// Summary description for Form1.
  12. /// </summary>
  13.   public class Form1 : System.Windows.Forms.Form
  14.   {
  15.     private System.Windows.Forms.Button btnOne;
  16.     private System.Windows.Forms.Button btnTwo;
  17.     private System.Windows.Forms.Label lblInfo;
  18.     private System.Windows.Forms.Button btnRaise;
  19.     /// <summary>
  20.     /// Required designer variable.
  21.     /// </summary>
  22.     private System.ComponentModel.Container components = null;
  23.     BusEntity _busEntity = new BusEntity();
  24.     public delegate void ActionEventHandler(object sender, ActionCancelEventArgs ev);
  25.     public static event ActionEventHandler Action;
  26.     public Form1()
  27.     {
  28.       //
  29.       // Required for Windows Form Designer support
  30.       //
  31.       InitializeComponent();
  32.       btnOne.Click += new EventHandler(Button_Click);
  33.       btnTwo.Click += new EventHandler(Button_Click);
  34.       btnTwo.Click += new EventHandler(btnTwo_Click);
  35.       btnRaise.Click += new EventHandler(btnRaise_Click);
  36.       
  37.     }
  38.     /// <summary>
  39.     /// Clean up any resources being used.
  40.     /// </summary>
  41.     protected override void Dispose( bool disposing )
  42.     {
  43.       if( disposing )
  44.       {
  45.         if (components != null) 
  46.         {
  47.           components.Dispose();
  48.         }
  49.       }
  50.       base.Dispose( disposing );
  51.     }
  52.     #region Windows Form Designer generated code
  53.     /// <summary>
  54.     /// Required method for Designer support - do not modify
  55.     /// the contents of this method with the code editor.
  56.     /// </summary>
  57.     private void InitializeComponent()
  58.     {
  59.       this.btnOne = new System.Windows.Forms.Button();
  60.       this.btnTwo = new System.Windows.Forms.Button();
  61.       this.lblInfo = new System.Windows.Forms.Label();
  62.       this.btnRaise = new System.Windows.Forms.Button();
  63.       this.SuspendLayout();
  64.       // 
  65.       // btnOne
  66.       // 
  67.       this.btnOne.Location = new System.Drawing.Point(104, 88);
  68.       this.btnOne.Name = "btnOne";
  69.       this.btnOne.TabIndex = 0;
  70.       this.btnOne.Text = "Button 1";
  71.       // 
  72.       // btnTwo
  73.       // 
  74.       this.btnTwo.Location = new System.Drawing.Point(104, 120);
  75.       this.btnTwo.Name = "btnTwo";
  76.       this.btnTwo.TabIndex = 1;
  77.       this.btnTwo.Text = "Button 2";
  78.       // 
  79.       // lblInfo
  80.       // 
  81.       this.lblInfo.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
  82.       this.lblInfo.Location = new System.Drawing.Point(40, 40);
  83.       this.lblInfo.Name = "lblInfo";
  84.       this.lblInfo.Size = new System.Drawing.Size(208, 23);
  85.       this.lblInfo.TabIndex = 2;
  86.       this.lblInfo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
  87.       // 
  88.       // btnRaise
  89.       // 
  90.       this.btnRaise.Location = new System.Drawing.Point(104, 160);
  91.       this.btnRaise.Name = "btnRaise";
  92.       this.btnRaise.TabIndex = 3;
  93.       this.btnRaise.Text = "Raise Event";
  94.       // 
  95.       // Form1
  96.       // 
  97.       this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
  98.       this.ClientSize = new System.Drawing.Size(292, 203);
  99.       this.Controls.Add(this.btnRaise);
  100.       this.Controls.Add(this.lblInfo);
  101.       this.Controls.Add(this.btnTwo);
  102.       this.Controls.Add(this.btnOne);
  103.       this.Name = "Form1";
  104.       this.Text = "Form1";
  105.       this.ResumeLayout(false);
  106.     }
  107.     #endregion
  108.     /// <summary>
  109.     /// The main entry point for the application.
  110.     /// </summary>
  111.     [STAThread]
  112.     static void Main() 
  113.     {
  114.       Application.Run(new Form1());
  115.     }
  116.     private void Button_Click(object sender, EventArgs e)
  117.     {
  118.       lblInfo.Text = ((Button)sender).Text + " was pressed";
  119.     }
  120.     private void btnTwo_Click(object sender, EventArgs e)
  121.     {
  122.       MessageBox.Show("This only happens in Button 2 click event");
  123.     }
  124.     private void btnRaise_Click(object sender, EventArgs e)
  125.     {
  126.       ActionCancelEventArgs cancelEvent = new ActionCancelEventArgs();
  127.       OnAction(this, cancelEvent);
  128.       if(cancelEvent.Cancel)
  129.         lblInfo.Text = cancelEvent.Message;
  130.       else
  131.         lblInfo.Text = _busEntity.TimeString;
  132.     }
  133.     protected void OnAction(object sender, ActionCancelEventArgs ev)
  134.     {
  135.       if(Action != null)
  136.         Action(sender, ev);
  137.     }
  138.   }
  139.   public class ActionCancelEventArgs : System.ComponentModel.CancelEventArgs
  140.   {
  141.  
  142.     string _msg = "";
  143.     public ActionCancelEventArgs()  : base()  {}
  144.     public ActionCancelEventArgs(bool cancel) : base(cancel)  {}
  145.     public ActionCancelEventArgs(bool cancel, string message) : base(cancel)
  146.     {
  147.       _msg = message;
  148.     }
  149.     public string Message
  150.     {
  151.       get {return _msg;}
  152.       set {_msg = value;}
  153.     }
  154.   }
  155. }