作业帮 > 综合 > 作业

帮忙理解事件托管其中的object sender(事件发行者) 与keyEventArges e 的实际意义,与其作用

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/08/10 19:13:05
帮忙理解事件托管其中的object sender(事件发行者) 与keyEventArges e 的实际意义,与其作用
帮忙理解事件托管其中的object sender(事件发行者) 与keyEventArges e 的实际意义,与其作用
就是这个事件是谁发送的,比如点击一个Button,则Button就是这个事件中的sender,通常情况下sender是在其中定义当前事件委托的类型的实例!
e 就是事件的参数,包含事件的数据.具体到KeyEventArges就是按键的数据,比如你总得知道用户按了哪个键吧!
举个例子说:你的Boss给了你一个采购命令(事件),Boss就是事件的Sender,而所采购商品的规格,价格等就是事件的数据,只不过它们被封装在了一个EventArgs中,
再问: 在按钮事件中,这个定义当前事件委托的类型的实例指的就是按钮吗?也就是指的任何事件的发行者?
再答: 呃......事件是在Button里定义的对吧?就像这样: public class Button { public event EventHandler Click { add{ ... ...} remove{... ...} } } 那么像在你在一项目里的一个窗体上新建了三个Button对象:button1,button2,button3 如果你现在为这三个对象定义了三个事件的响应程序: button1_Click(object sender ,EventArgs e){... ...} button2_Click(object sender ,EventArgs e){... ...} button3_Click(object sender ,EventArgs e){... ...} 那么事件的发行者(就是上面的三个sender)依次为button1,button2,button3 sender这个参数一般不怎么常用,主要用在内联事件处理程序和下面这种情况: 就是你不是为三个按钮单独的定义事件处理程序,而是将三个按钮的事件处理程序定义为同一个: handleButtonClick(object sender ,EventArgs e) { //这里要检查到底是哪个按钮了,如 // if((sender as Button)==button1){... ...} }