“object sender”和“EventArgs e”参数有什么用处?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (66)

在情况下Page_LoadInit和其他页面事件,有什么用这些的(object sender, EventArgs e)参数?

提问于
用户回答回答于

EventArgs e 是一个包含事件数据的称为e的参数,请参阅EventArgs MSDN页面以获取更多信息。

Object Sender 是一个名为Sender的参数,它包含对引发事件的控件/对象的引用。

事件参数类:http : //msdn.microsoft.com/en-us/library/system.eventargs.aspx

例:

protected void btn_Click (object sender, EventArgs e){
   Button btn = sender as Button;
   btn.Text = "clicked!";
}
用户回答回答于

假设你在表单上有多个按钮。这些按钮可以包含一个Tag描述点击它们应该做的事情。你可以Click用同一个处理程序处理所有的事件,并根据不同的sender事情做出不同的事情:

private void HandleButtonClick(object sender, EventArgs e)
{
    Button btn = (Button)sender;
    if(btn.Tag == "Hello")
      MessageBox.Show("Hello")
    else if(btn.Tag == "Goodbye")
       Application.Exit();
    // etc.
}

有些事件是可以取消的。他们发送CancelEventArgs而不是EventArgs。该对象Cancel在事件参数上添加一个简单的布尔属性。处理此事件的代码可以取消事件:

private void HandleCancellableEvent(object sender, CancelEventArgs e)
{
    if(/* some condition*/)
    {
       // Cancel this event
       e.Cancel = true;
    }
}

所属标签

可能回答问题的人

  • 人生的旅途

    10 粉丝484 提问5 回答
  • 无聊至极

    4 粉丝504 提问5 回答
  • 嗨喽你好

    7 粉丝480 提问4 回答
  • 御姐万岁

    6 粉丝507 提问3 回答

扫码关注云+社区

领取腾讯云代金券