这是一个按钮的事件处理程序里的一句代码:
sender就是触发这个事件的元素,也就是这个按钮,但是它在这个事件处理方法里的参数声明的是Object类型,即.NET里所有类型的最原始父类。
你在这一句代码这里打一个断点,等程序运行到这里的时候,你把鼠标放到sender上面,展开之后会看到,这个sender的真实类型,其实就是一个Button。
所以在前面加上(Button),就是显示的将这个Object型的sender,转换为Button型的对象btn。即:
btn = (Button)sender; -> 将object型的sender转换为Button,并赋值给btn。
sender就是触发这个事件的元素,也就是这个按钮,但是它在这个事件处理方法里的参数声明的是Object类型,即.NET里所有类型的最原始父类。
你在这一句代码这里打一个断点,等程序运行到这里的时候,你把鼠标放到sender上面,展开之后会看到,这个sender的真实类型,其实就是一个Button。
所以在前面加上(Button),就是显示的将这个Object型的sender,转换为Button型的对象btn。即:
btn = (Button)sender; -> 将object型的sender转换为Button,并赋值给btn。
这样等于你就可以在这个点击事件处理方法里获取到该按钮了,然后可以获取它上面附加的一些数据(属性、字段值、方法等等),或者给它设置一些值。
private
void
button1_Click(
object
sender, EventArgs e)
{
Button btn = (Button)sender;
PictureBox pbx =
new
PictureBox();
pbx.Location = btn.Location;
pbx.Size = btn.Size;
pbx.BorderStyle = BorderStyle.FixedSingle;
pbx.SizeMode = PictureBoxSizeMode.Zoom;
pbx.Image =
null
;
//此处添加图片
this
.Controls.Remove(btn);
this
.Controls.Add(pbx);
}