반응형
컨트롤의 배열을 작성하려면, 배열을 정의해, 그것을 인스턴스화해 폼에 추가할 필요가 있습니다
우선, 컨트롤의 배열을 , 사적인 맴버로 정의해 둡니다
이 배열을 인스턴스화하고, 폼에 추가하는 것만으로 배치됩니다
추가할 때에 초기화 해 두고 싶은 프로퍼티둥의 설정도 잊지 않고 가 줏요
도 이 때 이벤트 핸들러의 통합도 할 수 있습니다
통합된 이벤트에서는, sender 인수를 이용하고 이벤트가 일어난 컨트롤을 특정할 수 있습니다
당연합니다만, 이러한 작업은 폼이 표시되기 전에 실시하는 것이 많다고 생각합니다
이하의 예는 Form 이 Load 되었을때 에 동적으로 컨트롤의배열을 작성해 폼에 추가합니다
하는 김에 이벤트 핸들러의 통합의 일례도 가고 있습니다.
//사적인 필드로서 배열을 정의한다
private TextBox[] myTextBoxs;
//Load 이벤트로 배열을 동적으로 작성해 폼에 가세한다
private void Form1_Load(object sender , System.EventArgs e)
{
this.myTextBoxes = new TextBox[10]; // 10개의 배열을 확보한다
for(int i = 0 ; i =9 ; i++)
{
for(int i = 0 ; i =9 ; i++)
{
this.myTextBoxes[i] = new TextBox(); //새로운 인스턴스를 생성한다
// 여기서 프로퍼티등의 필요에 따라서 설정합니다
this.myTextBoxes[i].Name ="myTextBox"+ i.ToString();
this.myTextBoxes[i].Text ="myTextBox"+ i.ToString();
this.myTextBoxes[i].Top= i * 20;
// 이컨트롤을 폼에 추가한다
this.Controls.Add(this.myTextBoxes[i]);
// 이벤트도 통합하는 경우는 , 이벤트 핸들러를 추가한다
this.myTextBoxes[i] . TextChanged += new EventHandler(myTextBoxes_Textchanged);
// 여기서 프로퍼티등의 필요에 따라서 설정합니다
this.myTextBoxes[i].Name ="myTextBox"+ i.ToString();
this.myTextBoxes[i].Text ="myTextBox"+ i.ToString();
this.myTextBoxes[i].Top= i * 20;
// 이컨트롤을 폼에 추가한다
this.Controls.Add(this.myTextBoxes[i]);
// 이벤트도 통합하는 경우는 , 이벤트 핸들러를 추가한다
this.myTextBoxes[i] . TextChanged += new EventHandler(myTextBoxes_Textchanged);
}
}
// 폼의 Load 이벤트로 추가한 이벤트
private void myTextBoxes_TextChanged(object sender, Syste.EventArgs e)
{
// 폼의 Load 이벤트로 추가한 이벤트
private void myTextBoxes_TextChanged(object sender, Syste.EventArgs e)
{
// 이벤트가 일어난 컨트롤은 sender 인수로 부터 취득한다
TextBox hTextBox = (TextBox) sender;
//이벤트가 일어난 컨트롤 명과 그 취지를 표시하는 MessageBox.Show(hTextBox.Name +"의 Text를 변경했습니다");
TextBox hTextBox = (TextBox) sender;
//이벤트가 일어난 컨트롤 명과 그 취지를 표시하는 MessageBox.Show(hTextBox.Name +"의 Text를 변경했습니다");
}
'.NET > C# Form' 카테고리의 다른 글
C# 리치텍스트박스와 메뉴(MenuStrip) 컨텍스트메뉴(ContextMeneu) (0) | 2008.10.22 |
---|---|
C# 공통 대화상자 컨트롤(파일대화상자,텍스트박스,폰트/색상 대화상자,메세지박스) (0) | 2008.10.22 |
C# 예제로 배우는 컨트롤 (0) | 2008.10.21 |
C# 레이블 ( 레이블 링크) label (0) | 2008.10.21 |
C# 핸들러 통합(라디오버튼) Tag (1) | 2008.10.21 |
C# 라디오 버튼 값 받기 (0) | 2008.10.21 |
C# 버튼 메서드 Click 이벤트를 강제로 실행하는 PerformClick 사용예 (0) | 2008.10.21 |
C# 윈도우 폼 시작하기 (0) | 2008.10.17 |