關於事件處理(C#)

來源:互聯網
上載者:User
為了在應用中使用事件,你必須提供一個用來響應事件執行程式邏輯的事件處理器(一個事件處理的方法),和向事件來源登記事件處理器.這個過程,被稱為事件線.下面分別在,Web Forms和Windows Forms說明,怎樣工作的.
1.Web Forms:
例子中,有一個Butto和一個TextBox,當點擊按鈕時,文字框,改變背景顏色.
<html>
   <script language="C#" runat=server>
      private void Button_Clicked(object sender, EventArgs e){
         Box.BackColor = System.Drawing.Color.LightGreen;
      }         
   </script>
   <body>
      <form method="POST" action="Events.aspx" runat=server>   
          Click the button, and notice the color of the text box.<br><br>
         <asp:TextBox
         id = "Box" Text = "Hello" BackColor = "Cyan" runat=server/>             
         <br><br>       
        <asp:Button
        id = "Button" OnClick = "Button_Clicked" Text = "Click Me"
        runat = server/>         
      </form>
   </body>
</html>
儲存,產生Events.aspx檔案,通過,瀏覽器,可以看到效果.
下面簡要的說明,在例子中,實質的幾步.
1.事件來源是一個"System.WebForms.UI.WebControls.Button" server control的執行個體.
2.按鈕產生一個Click事件.
3.Click事件的委託是EventHandler.
4.頁面有一個事件處理器調用Button_Clicked.
5.Click事件用下面的文法"OnClick = "Button_Clicked"和Button_Clicked關連.
對於實際的Web開發人員來說,不必關心委託的細節,就像上面的例子一樣,簡單的實現了事件.
2.Windows Forms
例子中,有一個Butto和一個TextBox,當點擊按鈕時,文字框,改變背景顏色.
using System;
using System.ComponentModel;
using System.Windows.Forms;
using System.Drawing;
public class MyForm : Form
{  
   private TextBox box;
   private Button button;
   
   public MyForm() : base()
   {  
      box = new TextBox();
      box.BackColor = System.Drawing.Color.Cyan;
      box.Size = new Size(100,100);
      box.Location = new Point(50,50);
      box.Text = "Hello";
      
      button = new Button();
      button.Location = new Point(50,100);
      button.Text = "Click Me";
      
      //為了關連事件,產生一個委託執行個體同時增加它給Click事件.
      button.Click += new EventHandler(this.Button_Clicked);
      Controls.Add(box);
      Controls.Add(button);   
   }
   //事件處理器
   private void Button_Clicked(object sender, EventArgs e)
   {
      box.BackColor = System.Drawing.Color.Green;
   }
   // STAThreadAttribute說明Windows Forms使用單線程套間模型.
   [STAThreadAttribute]
   public static void Main(string[] args)
   {
      Application.Run(new MyForm());
   }  
}
儲存"Events.cs",在命令列中輸入,以下
  csc /r:System.dll,System.Drawing.dll,System.Windows.Forms.dll Events.cs
編譯產生,Events.exe,執行,可看到效果.
上面的例子,簡單的說明了.Net中,事件的處理.一個事件,必須有事件來源,和事件數目據.在例子中,事件數目據用EvengArgs.它是所有事件數目據類的基類.
為了更好的理解事件.可以去msdn中看關於,事件和委託的教程.

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。