關於(object sender, EventArgs e)


sender是事件源 就是指發起這個事件的對象(控件)
//表示觸發事件的那個控件
比如說你按下按鈕,那么sender就是按鈕

又如:textboxchange,sender就是該textbox,在事件處理中就可以用sender代替textbox.   
  如:   
  (sender   as   TextBox).Text="fdsaewfsda";   
  如果同一類控件處理方法相同,可以只寫一個事件處理,其他的用這一個就行了sender就會指代當前觸發事件的控件   

EventArgs是事件參數
//該事件傳入的參數,比如說你用鼠標點擊窗體
那么EventArgs是會包含點擊的位置等等參數
它用來輔助你處理事件

在日常開發中,大多數控件都需要寫觸發函數,而觸發函數中的兩個參數 sender 和 e 的作用,就不容小視。

看下面的例子:

<asp:Button ID="Button1" runat="server" Text="Button1" OnClick="Button_OnClick" />

<asp:Button ID="Button2" runat="server" Text="Button2" OnClick="Button_OnClick" />

<asp:Button ID="Button3" runat="server" Text="Button3" OnClick="Button_OnClick" />

在上面的程序中設計了三個Button控件,他們點擊后觸發的函數都為Button_OnClick;那么我如何分辨出到底是哪一個Button進行了點擊呢,就要用到觸發函數中的參數來判斷。

protected void Button_OnClick(object sender, EventArgs e)   
{   
    Button btn = (Button)sender;   
    Response.Write(btn.ID);   
}  
    protected void Button_OnClick(object sender, EventArgs e)
    {
        Button btn = (Button)sender;
        Response.Write(btn.ID);
    }

這時,我將類型為object的sender變量進行轉型為Button后,就可以通過他的ID屬性來判斷。

另一個例子:

<asp:ImageButton ID="ImageButton1" runat="server" OnClick="ImageButton_OnClick" />

我設計了一個ImageButton控件,進行點擊操作時觸發的函數為ImageButton_OnClick;

protected void Button_OnClick(object sender, ImageClickEventArgs e)   
{   
    Response.Write("X坐標:"+e.X.ToString());   
    Response.Write("Y坐標:"+e.Y.ToString());   
}  
    protected void Button_OnClick(object sender, ImageClickEventArgs e)
    {
        Response.Write("X坐標:"+e.X.ToString());
        Response.Write("Y坐標:"+e.Y.ToString());
    }

這時,我在圖片上任意地方點擊后,就會顯示出點擊時的X,Y坐標。

但是,參數e經常是與控件的CommandName與CommandArgument屬性綁定起來進行傳參的。

他們所要觸發的相應操作是OnCommand而不是OnClick操作。

例:

<asp:Button ID="Button1" runat="server" Text="Button1" CommandName="Button1" OnCommand="Button_OnCommand"/>

<asp:Button ID="Button2" runat="server" Text="Button2" CommandName="Button2" OnCommand="Button_OnCommand"/>

<asp:Button ID="Button3" runat="server" Text="Button3" CommandName="Button3" OnCommand="Button_OnCommand" />

protected void Button_OnCommand(object sender, CommandEventArgs e)   
{   
    Response.Write(e.CommandName);   
    Response.Write(e.CommandArgument);   

 

 

轉自網易博客中的平凡人生


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM