1. 程式人生 > >WinForm事件中的Object sender和EventArgs e引數

WinForm事件中的Object sender和EventArgs e引數

Windows程式有一個事件機制。用於處理使用者事件。

在WinForm中我們經常需要給控制元件新增事件。例如給一個Button按鈕新增一個Click點選事件。給TextBox文字框新增一個KeyPress 鍵盤按下事件。通過強大的IDE,雙擊控制元件就能直接新增一個該控制元件預設的事件。

1 2 3 4 private  void  btnError_Click( object  sender, EventArgs e) {          //some codes here.
}

雙擊Button,自動生成的是Click事件,事件的命名是控制元件名字加下劃線加操作名字命名的。該事件還有兩個引數,一個是object型別的sender,還有一個是EventArgs型別的e。

從英文意思來看sender和e這兩個引數:

sender:傳送者

EventArgs:事件引數 (EventArguments)

Aggument:論點

object:物件,基類

 

sender引數用於傳遞指向事件源物件的引用。簡單來講就是當前的物件。例如button的點選事件,那麼這個sender就代表這個button自己。

private void btnError_Click(object sender, EventArgs e)
{
      //獲取當前點選的Button
      Button thisClickedButton = sender as Button;
}            

由於sender指的是事件源物件,sender是object型別,用的時候記得轉一下型別才可以用。

 

e引數是是EventArgs型別。簡單來理解就是記錄事件傳遞過來的額外資訊。一般用於傳遞使用者點選的位置啊,鍵盤按下的鍵等事件的額外資訊。例如TextBox中有一個KeyPress事件。

複製程式碼
 private void inputTextBox_KeyPress(object sender, KeyPressEventArgs e)
 {
    //獲取當前物件
     TextBox tb = sender as TextBox;

      //獲取當前按下來的鍵值
      char c = e.KeyChar;
 }
複製程式碼

在事件裡可以通過e點出來,不過不同的事件傳遞的資訊也會不同。

在WinForm中我們經常需要給控制元件新增事件。例如給一個Button按鈕新增一個Click點選事件。給TextBox文字框新增一個KeyPress 鍵盤按下事件。通過強大的IDE,雙擊控制元件就能直接新增一個該控制元件預設的事件。

1 2 3 4 private  void  btnError_Click( object  sender, EventArgs e) {          //some codes here. }

雙擊Button,自動生成的是Click事件,事件的命名是控制元件名字加下劃線加操作名字命名的。該事件還有兩個引數,一個是object型別的sender,還有一個是EventArgs型別的e。

從英文意思來看sender和e這兩個引數:

sender:傳送者

EventArgs:事件引數 (EventArguments)

Aggument:論點

object:物件,基類

 

sender引數用於傳遞指向事件源物件的引用。簡單來講就是當前的物件。例如button的點選事件,那麼這個sender就代表這個button自己。

private void btnError_Click(object sender, EventArgs e)
{
      //獲取當前點選的Button
      Button thisClickedButton = sender as Button;
}            

由於sender指的是事件源物件,sender是object型別,用的時候記得轉一下型別才可以用。

 

e引數是是EventArgs型別。簡單來理解就是記錄事件傳遞過來的額外資訊。一般用於傳遞使用者點選的位置啊,鍵盤按下的鍵等事件的額外資訊。例如TextBox中有一個KeyPress事件。

複製程式碼
 private void inputTextBox_KeyPress(object sender, KeyPressEventArgs e)
 {
    //獲取當前物件
     TextBox tb = sender as TextBox;

      //獲取當前按下來的鍵值
      char c = e.KeyChar;
 }
複製程式碼

在事件裡可以通過e點出來,不過不同的事件傳遞的資訊也會不同。