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
반응형