m.cafe.daum.net/smbitpro/R7EG/4
Form 속성(디자인,기타)
이번에는 Form의 속성 중에 디자인과 기타에 관련한 속성들을 살펴보기로 하자.
디자인 속성
속성명 |
형식 |
설명 |
Name |
string |
컨트롤의 이름 Control에서 상속 |
1. Name
이 속성은 현재 컨트롤의 이름이다. Form을 제외한 다른 컨트롤의 속성 창을 통해 Name 속성을 변경하면 해당 컨트롤을 소유하고 있는 폼의 C#코드에서 접근할 수 있는 변수명도 지정한 Name속성과 동일하게 된다.
Form1.Designer.cs 파일의 마지막 부분에 보면 다음과 같이 멤버 필드가 선언된 부분을 확인할 수 있다.
private System.Windows.Forms.Button TestButton;
Form1.cs 파일과 Form1.Designer.cs 파일은 물리적으로 분리되어 있지만 논리적으로 하나의 From1 클래스에 대한 코드이므로 Form1.cs에서 직접적으로 사용 가능하다.
다음의 예는 Form1이 Load될 때 TestButton의 캡션을 변경하는 예이다.
참고로 Form1.cs 디자인 창에서 Form1을 더블 클릭하면 자동으로 Form1의 Load이벤트 핸들러가 추가된다.(다른 컨트롤의 경우도 디자인 창에서 더블 클릭하면 해당 컨트롤의 디폴트 이벤트 핸들러가 추가된다. 디폴트 이벤트는 해당 컨트롤에 추가할 확률이 가장 높은 이벤트 핸들러이다.)
private void Form1_Load(object sender, EventArgs e) { TestButton.Text = "테스트"; } |
기타 속성
속성명 |
형식 |
설명 |
AcceptButton |
IButtonControl |
Enter키를 눌렀을 때 자동 클릭되는 버튼 |
CancelButton |
IButtonControl |
ESC키를 눌렀을 때 자동 클릭되는 버튼 |
KeyPreview |
bool |
포커스를 받은 컨트롤에 키 이벤트가 전달되기 전에 폼이 키 이벤트를 받을지 여부 |
1. AcceptButton
이 속성은 Enter키를 눌렀을 때 자동으로 클릭되는 버튼을 설정하는 것으로 기본 기능을 수행하는 버튼을 설정을 하는 것이 일반적이다. 예를 들어 메신저에서 숏 메시지를 메시지 입력 창에 치고 Enter키를 누르면 자동으로 보내기 버튼에 Click이벤트가 발생하도록 하는 것을 들 수 있다.
2. CancelButton
이 속성은 ESC키를 눌렀을 때 자동으로 클릭되는 버튼을 설정한다.
3. KeyPreview는 폼 내의 컨트롤이 포커스를 갖고 있을 때 키를 누르면 포커스를 가진 컨트롤에 키 이벤트가 전달되기 전에 폼이 키 이벤트를 받을지 여부에 관한 속성이다.
기타 속성을 좀 더 살펴보기 위해서 간단한 프로그램을 작성해 보자.
앞의 프로젝트에 TextBox 컨트롤 하나와 Button 두 개를 추가하자. Button하나에는 Name을 Test1Button이라 부여하고 Text속성은 Test1을 부여하고 다른 하나에는 Name을 Test2Button이라 부여하고 Text속성은 Test2를 부여하자.
그리고, Test1Button과 Test2Button을 각각 더블 클릭하여 Click이벤트 핸들러를 추가하도록 하자.
마지막으로 Form1의 속성 창에서 이벤트 버튼(번개 표시)을 누른 후 KeyDown 이벤트 핸들러를 추가하도록 하자.
앞으로 특별한 사항이 없을 경우에는 [폼이름].Designer.cs에 자동 추가되는 코드에 대한 설명은 생략할 것이다.
각 이벤트 핸들러에 적절하게 메시지 박스를 띄우는 코드를 추가해 보자.
private void Test1Button_Click(object sender, EventArgs e) { MessageBox.Show("Test1 버튼 누름"); }
private void Test2Button_Click(object sender, EventArgs e) { MessageBox.Show("Test2 버튼 누름"); }
private void Form1_KeyDown(object sender, KeyEventArgs e) { MessageBox.Show(e.KeyData.ToString() + "키 누름"); } |
예상하는 것처럼 실행한 후 Enter키를 누르면 Test1Button의 Click이벤트 핸들러가 동작하고 ESC키를 누르면 Test2Button의 Click이벤트 핸들러가 동작할 것이다. 또한, TextBox에 포커스를 옮기고 키를 누르면 From1의 KeyDown이벤트 핸들러가 동작하는 것을 알 수 있을 것이다.
'개발언어 > C#' 카테고리의 다른 글
[C#] (강의) 2. Form 속성(레이아웃) (0) | 2021.04.12 |
---|---|
[C#] (강의) 2. Form 속성(창 스타일) (0) | 2021.04.12 |
[C#] (강의) 2. Form 속성 (동작관련) (0) | 2021.04.12 |
[C#] (강의) 1.Forms 개요2 (0) | 2021.04.12 |
[C#] (강의) 1.Forms 개요 (0) | 2021.04.12 |