programing

"object sender" 및 "EventArgue" 매개 변수는 무엇을 사용합니까?

css3 2023. 6. 29. 20:19

"object sender" 및 "EventArgue" 매개 변수는 무엇을 사용합니까?

의 경우Page_Load,Init그리고 다른 페이지 이벤트, 이것들의 용도는 무엇입니까?(object sender, EventArgs e)매개 변수?

예시가 더 도움이 될 것입니다.

EventArgs e는 이벤트 데이터를 포함하는 e라는 매개 변수입니다. 자세한 내용은 EventArgs MSDN 페이지를 참조하십시오.

Object Sender이벤트를 발생시킨 컨트롤/개체에 대한 참조를 포함하는 Sender라는 매개 변수입니다.

이벤트 Arg 클래스: 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!";
}

편집: 버튼을 클릭하면 btn_Click 이벤트 핸들러가 실행됩니다."객체 발송인" 부분은 클릭된 버튼에 대한 참조가 됩니다.

이러한 두 매개 변수(또는 의 변형)는 관례에 따라 모든 이벤트와 함께 전송됩니다.

  • sender이벤트를 발생시킨 객체
  • e의 예.EventArgs많은 경우에서 상속되는 개체를 포함합니다.EventArgs이벤트에 대한 추가 정보를 포함하고 있으며 이벤트를 코드로 처리하여 이벤트를 변경하는 기능을 제공하기도 합니다.

언급한 이벤트의 경우 두 매개 변수 모두 특별히 유용하지 않습니다.이벤트를 제기하는 페이지는 한 페이지에 불과하며,EventArgs이다Empty그 사건에 대한 더 이상의 정보가 없기 때문입니다.

두 매개 변수를 별도로 살펴보면 유용한 몇 가지 예가 있습니다.

sender

양식에 단추가 여러 개 있다고 가정합니다.이 단추에는 다음이 포함될 수 있습니다.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.
}

고지 사항: 그것은 인위적인 예입니다; 그렇게 하지 마세요!

e

일부 이벤트는 취소할 수 있습니다.그들은 보냅니다.CancelEventArgs대신에EventArgs이 개체는 단순 부울 속성을 추가합니다.Cancel이벤트 아그에서.이 이벤트를 처리하는 코드는 이벤트를 취소할 수 있습니다.

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

언급URL : https://stackoverflow.com/questions/14479143/what-is-the-use-of-object-sender-and-eventargs-e-parameters