C#中object sender,EventHandler e有個毛做用

button1_Click(object sender,EventHandler e) orm

{
Button button=(Button)sender;
button.Text="text property has been changed at its event";
}事件

object 是事件的激發控件,或叫事件源:具體咱們能夠用MessageBox.Show(sender.ToString())直接輸出,咱們能夠直接看到;

若是一個按鈕button1,我點擊這個按鈕﹕sender就是按鈕﹐因為事件是在按鈕內部觸發的。若是要在程序中使用sender,通常情況下你就必須知道sender是哪一個類型的(好比在上面這中情況中必須只要sender的type是Button),而後在轉換到那個類型中去﹐這樣你就能夠在事件中訪問事件發送者的數據it

EventArgs是包含事件數據的類的基類,用於傳遞事件的細節:

e是事件參數,也就是說在定義事件的類裏定義的那些屬性,在某些事件裏,e用處不大;
所包含的細節多少,根據各類EventArgs的定義而定,如EventArgs就是一個空值,咱們在VS環境中右鍵"轉到定義處"就能夠發現其定義是這樣:event

public class EventArgs
{
// 摘要:
// 表示沒有事件數據的事件。
public static readonly EventArgs Empty;
// 摘要:
// 初始化 System.EventArgs 類的新實例。

public EventArgs();
}class

如MouseEventArgs是EventArgs的子類,那麼它就定義了許多能夠輸出的值,其定義以下:

// 摘要: // 爲 System.Windows.Forms.Control.MouseUp、System.Windows.Forms.Control.MouseDown
// 和 System.Windows.Forms.Control.MouseMove 事件提供數據。
[ComVisible(true)]
public class MouseEventArgs : EventArgs
{
// 摘要:
// 初始化 System.Windows.Forms.MouseEventArgs 類的新實例。
//
// 參數:
// clicks:
// 鼠標按鈕曾被按下的次數。
//
// delta:
// 鼠標輪已轉動的制動器數的有符號計數。
//
// Y:
// 鼠標單擊的 y 座標(以像素爲單位)。
//
// button:
// System.Windows.Forms.MouseButtons 值之一,它指示曾按下的是哪一個鼠標按鈕。
//
// x:
// 鼠標單擊的 x 座標(以像素爲單位)。
好比在MouseEventArgs的Mouse事件中,能夠看到e包括mouse的座標值等,以供你的程序使用。e參數就是經過這些定義的屬性進行調用或輸出的,這裏咱們就能夠調用e.Y或e.X得到具體的參數細節了.cli

相關文章
相關標籤/搜索