1、

说的通俗一些,就是:

有一个叫做EventHandler 的家伙,他会告诉你(主程序),有一些事情发生了:这个事情是谁导致的呢?是某个object类型对象导致的,它用Source或Sender来表示。这个事情是什么事呢?e的内容就是事情的内容了。

至于Source和Sender,没有区别,你想用哪个就用哪个,其实都是一样的。

所以,我们在程序中的事件处理函数就是依赖于这个东西实现的:比方说你点了一个按钮,程序怎么知道应该用哪个函数来处理这个动作呢?那么EventHandler 这个家伙会告诉程序:"button1(sender)被点击(e)了,请调用对应的处理函数"。当然这个函数是谁,这个函数要做什么,是由你自己写的。

----------------------------------------------------------------------

2、

在你的窗体中添加一个Label,双击Label的MouseClick事件。添加如下方法:
private void label1_MouseClick(object sender, MouseEventArgs e)
{
Label senderLabel = (Label)sender;//根据sender引用控件。
senderLabel.Text = e.Button.ToString();//根据e中的Button参数,判断是左键还是右键。
}
然后在窗体中单击你的Label,就会显示你单击的鼠标的按键Rigle或者Left。
——————————————————
以Button为例:
protected void Button1_Click(object sender, EventArgs e)
其中的sender,就是你点击的button.可以通过类型转换得到这个button的引用:
Button sendButton = (Button)sender;
e是你点击事件的一些参数。