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
반응형
'IT > C#' 카테고리의 다른 글
[C#] ZedGraph 이용하여 그래프 그리기. NuGet Packages 설치하기. 실시간 그래프 그리기 예시. (0) | 2024.01.10 |
---|---|
[C#] MessageBox 버튼 종류 및 아이콘 설정하기. (1) | 2023.11.30 |
[C#] Form Close Button Disable. 폼 컨트롤 박스 닫기 버튼 사용 못하도록 처리하기. (1) | 2023.11.22 |
[C#] Clone a List. 리스트 복제하는 간단한 방법과 주의할 점. (58) | 2023.09.06 |
[C#][Solved] Failed to load toolbox item 'UserControl1'. It will be removed from the toolbox. 해결방법. (18) | 2023.09.05 |