c#控件事件 windows

1、窗體
常用方法
1)Show方法:該方法的作用是讓窗體顯示出來,其調用格式爲:窗體名.Show(); 其中窗體名是要顯示的窗體名稱。
(2)Hide方法:該方法的作用是把窗體隱藏出來,其調用格式爲:
窗體名.Hide(); 其中窗體名是要隱藏的窗體名稱。
(3)Refresh方法:該方法的作用是刷新並重畫窗體,其調用格式爲:
窗體名.Refresh();
其中窗體名是要刷新的窗體名稱。
(4)Activate方法:該方法的作用是激活窗體並給予它焦點。其調用格式爲:
窗體名.Activate(); 其中窗體名是要激活的窗體名稱。
(5)Close方法:該方法的作用是關閉窗體。其調用格式爲:
窗體名.Close(); 其中窗體名是要關閉的窗體名稱。
(6)ShowDialog方法:該方法的作用是將窗體顯示爲模式對話框。其調用格式爲:
窗體名.ShowDialog();

3.常用事件
(1)Load事件:
該事件在窗體加載到內存時發生,即在第一次顯示窗體前發生。

(2)Activated事件:該事件在窗體激活時發生。
(3)Deactivate事件:該事件在窗體失去焦點成爲不活動窗體時發生。
(4)Resize事件:該事件在改變窗體大小時發生。
(5)Paint事件:該事件在重繪窗體時發生。
(7)DoubleClick事件:該事件在用戶雙擊窗體時發生。
(8)Closed事件:該事件在關閉窗體時發生。

C#中使用事件需要的步驟:
1、創建一個委託;
2、將創建的委託與特定事件關聯
(.Net類庫中的很多事件都是已經定製好的,所以他們也就有相應的一個委託,在編寫關聯C#事件處理程序–也就是當有事件發生時我們要執行的方法的時候我們需要和這個委託有相同的簽名);
3、編寫C#事件處理程序;
4、利用編寫的C#事件處理程序生成一個委託實例;
5、把這個委託實例添加到產生事件對象的事件列表中去,這個過程又叫訂閱事件。

一、定義事件
<訪問修飾符> event 委託名 事件名;

 class Judgment
2 {
3     //定義一個委託
4     public delegate void delegateRun();
5     //定義一個事件
6     public event delegateRun eventRun;
7 }

二、訂閱事件
訂閱事件的語法如下:
假如方法名爲Run,那麼訂閱事件eventRun的代碼如下:

judgment.eventRun+=new Judgment.delegateRun(runsport.Run);

judgment爲類Judgment的對象,runsport爲運動員類RunSports的對象,Run爲其中的方法。

事件的訂閱通過“+=”操作符來實現,可以給事件加一個或多個方法委託。
三、引發事件

public void Begin()
    {
          enentRun();
    }

一般都是在滿足某個條件下引發事件,裁判員槍聲一響,引發運動員奔跑這個事件。在編程中可以用條件詰句,也可以使用方法引發事件。
通過Begin方法引發事件enentRun。
引發事件的語法與調用方法的語法相同,引發該事件時,將調用訂閱事件的對象的所有委託。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Example_EventTest
{
    class Judgment
    { 
        //定義一個委託
        public delegate void delegateRun();
        //定義一個事件
        public event delegateRun eventRun;
        //引發事件的方法
        public void Begin()
        {
            eventRun();//被引發的事件
        } 
    }
    class RunSports
    { 
        //定義事件處理方法
        public void Run()
        {
            Console.WriteLine("運動員開始比賽");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            RunSports runsport = new RunSports();//實例化事件發佈者
            Judgment judgment = new Judgment();//實例化事件訂閱者
            //訂閱事件
            judgment.eventRun+=new Judgment.delegateRun(runsport.Run);
            //引發事件
            judgment.Begin();
            Console.ReadKey();
        }
    }
}

Judgment類爲事件發佈者,RunSports類爲事件訂閱者。引發事件的方法爲Begin();。一個事件可以有多個訂閱者,事件的發佈者也可以是事件的訂閱者。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章