日期:2014-05-17  浏览次数:20863 次

还是不懂!!!!!!!!
PictureBox p = (PictureBox)sender;
求详细的解释。

------解决方案--------------------
回调给控件事件的处理函数中,要求object参数sender来标识事件的载体对象。
通俗了说就是,
我打了你一下,你在反应之前,总得知道打得是你哪个地方吧?我踢你JJ你去抱头?
这个时候就有  

JJ smalljj=(JJ)sender;
smalljj.protect();

------解决方案--------------------
给你举个例子吧
btn = (Button)sender
这是一个按钮的事件处理程序里的一句代码,sender就是触发这个事件的元素,也就是这个按钮,但是它在这个事件处理方法里的参数声明的是Object类型,即.NET里所有类型的最原始父类。你在这一句代码这里打一个断点,等程序运行到这里的时候,你把鼠标放到sender上面,展开之后会看到,这个sender的真实类型,其实就是一个Button。所以在前面加上(Button),就是显示的将这个Object型的sender,转换为Button型的对象btn。即:btn = (Button)sender; -> 将object型的sender转换为Button,并赋值给btn。 这样等于你就可以最这个点击事件处理方法里获取到该按钮了,然后可以获取它上面附加的一些数据(属性、字段值、方法等等),或者给它设置一些值
------解决方案--------------------
引用:
回调给控件事件的处理函数中,要求object参数sender来标识事件的载体对象。
通俗了说就是,
我打了你一下,你在反应之前,总得知道打得是你哪个地方吧?我踢你JJ你去抱头?
这个时候就有  

JJ smalljj=(JJ)sender;
smalljj.protect();

淫才,这个例子举的生动形象,变量名也很贴切,执行的方法也很贴切
------解决方案--------------------
PictureBox p = (PictureBox)sender;

sender就是发生事件的PictureBox。 因为sender在委托中定义的类型是object  但其实就是PictureBox类型的 
------解决方案--------------------
引用:
PictureBox p = (PictureBox)sender;
求详细的解释。

首先,sender所傳遞的是觸發某個事件的控件或其他什麽的東西的來源
在瞭解這點之後,你可以嘗試一個例子,放兩個button然後用兩個button調用同一個click事件,然後在這個click事件中寫下面的代碼

Button b = (Button)sender;
MessageBox.Show(b.Name);

體會一下效果
另:(Button)sender就是一個強制轉換,sender是object類型的