sender是事件源 就是指发起这个事件的对象(控件) 又如:textboxchange,sender就是该textbox,在事件处理中就可以用sender代替textbox. 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) 这时,我将类型为object的sender变量进行转型为Button后,就可以通过他的ID属性来判断。 另一个例子: <asp:ImageButton ID="ImageButton1" runat="server" OnClick="ImageButton_OnClick" /> 我设计了一个ImageButton控件,进行点击操作时触发的函数为ImageButton_OnClick; protected void Button_OnClick(object sender, ImageClickEventArgs e) 这时,我在图片上任意地方点击后,就会显示出点击时的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) |
|