Windows程式有一個事件機制。用于處理使用者事件。
在WinForm中我們經常需要給控件添加事件。例如給一個Button按鈕添加一個Click點選事件。給TextBox文本框添加一個KeyPress 鍵盤按下事件。通過強大的IDE,輕按兩下控件就能直接添加一個該控件預設的事件。
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點出來,不過不同的事件傳遞的資訊也會不同。