关于(object sender, EventArgs e)

在日常开发中,大多数控件都需要写触发函数,而触发函数中的两个参数 sender 和 e 的作用,就不容小视。

看下面的例子:

 

 

在上面的程序中设计了三个Button控件,他们点击后触发的函数都为Button_OnClick;那么我如何分辨出到底是哪一个Button进行了点击呢,就要用到触发函数中的参数来判断。

 

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

这时,我将类型为object的sender变量进行转型为Button后,就可以通过他的ID属性来判断。

 

另一个例子:

我设计了一个ImageButton控件,进行点击操作时触发的函数为ImageButton_OnClick;

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操作。

例:

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

 

 

 

此文仅作为抛砖引玉。。。。。

你可能感兴趣的:(【.NET】)