[英].Net Events - What use (object sender, EventArgs e) parameters give in Events other than onClick
[英]What is the use of “object sender” and “EventArgs e” parameters?
在Page_Load
, Init
和其他頁面事件的情況下,這些(object sender, EventArgs e)
參數的用途是什么?
例子會更有幫助。
EventArgs e
是一個名為e的參數,包含事件數據,有關詳細信息,請參閱EventArgs MSDN頁面。
Object Sender
是一個名為Sender的參數,它包含對引發事件的控件/對象的引用。
事件Arg類: http : //msdn.microsoft.com/en-us/library/system.eventargs.aspx
例:
protected void btn_Click (object sender, EventArgs e){
Button btn = sender as Button;
btn.Text = "clicked!";
}
編輯:單擊按鈕時,將觸發btn_Click事件處理程序。 “對象發送者”部分將是對單擊按鈕的引用
按慣例,這兩個參數(或變體)按所有事件發送。
sender
:引發事件的對象 e
的一個實例EventArgs
包括,在許多情況下,它從繼承對象EventArgs
。 包含有關事件的其他信息,有時還提供處理事件的代碼以某種方式更改事件的能力。 對於您提到的事件,這兩個參數都不是特別有用。 只有一頁提升事件, EventArgs
為Empty
因為沒有關於該事件的進一步信息。
在兩個參數分別看,這里有一些例子,他們是有用的。
sender
假設您在表單上有多個按鈕。 這些按鈕可以包含一個Tag
描述點擊它們應該做什么。 您可以使用相同的處理程序處理所有Click
事件,並根據sender
執行不同的操作
private void HandleButtonClick(object sender, EventArgs e)
{
Button btn = (Button)sender;
if(btn.Tag == "Hello")
MessageBox.Show("Hello")
else if(btn.Tag == "Goodbye")
Application.Exit();
// etc.
}
免責聲明:這是一個人為的例子; 不要那樣做!
e
有些活動可以取消。 他們發送CancelEventArgs
而不是EventArgs
。 此對象在事件args上添加一個簡單的布爾屬性Cancel
。 處理此事件的代碼可以取消該事件:
private void HandleCancellableEvent(object sender, CancelEventArgs e)
{
if(/* some condition*/)
{
// Cancel this event
e.Cancel = true;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.