C#에서 여러 개의 버튼을 만들고, 마우스로 클릭하는 이벤트 기능을 사용할 때가 많습니다.
예를 들어 4x3개로 배열되는 키 버튼을 만든다면, 이를 버튼 배열로 만드는 것이 편리할 것입니다.
다음과 같은 방법을 사용하면 편리합니다.
이 예는 4개의 버튼을 생성하는 방법을 보여주고 있습니다.
우선 배열로 버튼을 정의합니다.
private Button[] btn = new Button[4];
다음과 같이 버튼의 객체를 생성하고 폼에 등록합니다.
그리고 위치를 결정하고, 마우스 이벤트를 연결합니다. 이때 index라는 별도의 변수를 사용하는 것이 핵심입니다.
private void Form1_Load(object sender,EventArgs e) {
for(int i =0;i< btn.Length;i++){
int index = i;
this.btn[i] = new Button();
this.Controls.Add(this.btn[i]);
this.btn[i].Width = 100;
this.btn[i].Height = 20;
this.btn[i].Top = 10;
this.btn[i].Left = 100 + (120 * i);
this.btn[i].Enabled = true;
this.btn[i].Visible = true;
//-index라는 별도의 변수로 이벤트로 발생해야한다.
//-i를 변수로 사용해선 않된다.
this.btn[i].Click += (sender1,ex) => this.btnOutputLink_Click(index);
}
}
버튼의 마우스 클릭 이벤트를 받아서 동작할 함수를 선언합니다.
이때 버튼의 번호(index = btn_id)를 수신해서 어떤 버튼이 눌렸는지 알아봅니다.
private void btnOutputLink_Click(int btn_id){
this.label1.Text = btn_id.ToString() ;
}
'C#, MONO' 카테고리의 다른 글
다른 폼으로 메시지 전송(3) (0) | 2021.08.09 |
---|---|
다른 폼으로 메시지 전송(2) (0) | 2021.08.09 |
다른 폼으로 메시지 전송(1) (0) | 2021.08.09 |
richTextBox에 Console출력하기 (0) | 2021.08.09 |
Linux에서 MONO설치-시작 (0) | 2021.08.09 |