C#: 이벤트

8248 단어 C#
이벤트: 이벤트는 대상이 보낸 메시지로 고객이 조작했다는 신호를 보냅니다.이 조작은 마우스 클릭으로 일어났을 수도 있고, 일부 다른 프로그램 논리로 촉발되었을 수도 있다.사건의 발송자는 어떤 대상이나 방법이 그로 인해 발생한 사건을 수신하는지 알 필요가 없고 발송자는 그것과 수신자 간의 중개(delegate)만 알 수 있다.
예 1:
 1 using System;
 2 using System.Windows.Forms;
 3 
 4 namespace WindowsFormsApplication2
 5 {
 6     public partial class Form1 : Form
 7     {
 8         public Form1()
 9         {
10             InitializeComponent();
11 
12             //  buttonOne Click , Button_Click , += 
13             buttonOne.Click += new EventHandler(Button_Click);
14             buttonTwo.Click += new EventHandler(Button_Click);
15             buttonTwo.Click += new EventHandler(button2_Click);
16         }
17 
18         //  
19         private void Button_Click(object sender, EventArgs e)
20         {
21             if (((Button)sender).Name == "buttonOne")
22             {
23                 labelInfo.Text = "Button one was pressed.";
24             }
25             else
26             {
27                 labelInfo.Text = "Button two was pressed.";
28             }
29         }
30 
31         private void button2_Click(object sender, EventArgs e)
32         {
33             MessageBox.Show("This only happens in Button two click event");
34         }
35     }
36 }

이벤트 처리 방법에는 몇 가지 중요한 부분이 있다.
4
  • 이벤트 처리 프로그램은 항상void를 되돌려줍니다. 되돌려주는 값이 있을 수 없습니다

  • 4
  • EventHandler 의뢰를 사용하면 파라미터는 Object와 EventArgs가 되어야 한다.첫 번째 파라미터는 이벤트를 일으키는 대상입니다. 위의 예시에서 buttonOne이나 buttonTwo입니다.두 번째 매개변수 EventArgs는 이벤트에 대한 기타 유용한 정보를 포함하는 객체입니다.이 매개변수는 EventArgs에서 파생되기만 하면 모든 유형이 될 수 있습니다

  • 4
  • 방법의 명칭도 약정에 따라 이벤트 처리 프로그램은'object event'의 명칭 약정을 따라야 한다는 것을 주의해야 한다

  • 하면, 만약, 만약...λ표현식, Button 필요 없음Click 메서드 및 Button2Click 메서드:
     1 using System;
     2 using System.Windows.Forms;
     3 
     4 namespace WindowsFormsApplication2
     5 {
     6     public partial class Form1 : Form
     7     {
     8         public Form1()
     9         {
    10             InitializeComponent();
    11             buttonOne.Click += (sender, e) => labelInfo.Text = "Button one was pressed";
    12             buttonTwo.Click += (sender, e) => labelInfo.Text = "Button two was pressed";
    13             buttonTwo.Click += (sender, e) =>
    14                 {
    15                     MessageBox.Show("This only happens in Button2 click event");
    16                 };
    17         }
    18     }
    19 }

    좋은 웹페이지 즐겨찾기