IT/C#

[C#] Button Click Event 여러개 동적 할당하기.

Ella.J 2023. 11. 30. 17:05
728x90
반응형

 

 

버튼 여러 개를 사용하는 경우 디자인 탭에서 일일이 버튼 이벤트를 할당해 줄 수도 있지만,

양이 많고 규칙이 있다면 간단하게, 한 번에 할당해서 사용할 수 있습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public Button[] btn;
public Form1()
{
    InitializeComponent();
    btn = new Button[] { button1, button2, button3, button4, button5, 
        button6, button7, button8, button9, button10 };
    for (int i = 0; i < btn.Length; i++)
    {
        btn[i].Click += btn_Click;
    }
}
 
private void btn_Click(object sender, EventArgs e)
{
    Button btn = (Button)sender;
    int idx = Convert.ToInt32(btn.Name.Replace("button"""));
    MessageBox.Show(idx.ToString());
}
cs

 

코드로 가서, 전역변수로 Button 배열을 선언해주고,

Form 함수에서 해당 버튼 배열을 등록해 줍니다.

그리고 for문을 돌려서, 해당 버튼 이벤트를 동적할당해 줍니다.

 

동일한 버튼 이벤트를 사용하는 경우, 어떤 버튼이 클릭되었는지 알아야 할 필요가 있는데,

함수 매개변수의 object sender를 Button으로 명시적 변환해 주고,

해당 버튼의 Name 혹은 설정한 Text로 어떤 버튼인지 구분하여 각각의 이벤트를 사용할 수 있습니다.

 

728x90
반응형