키를 입력하면 반응하는 이벤트 처리하는 방법이다.
소스코드 화면에 있다면 Shift + F7 키를 눌러서 폼 디자이너로 돌아가 폼을 선택한다.
적용할 속성창을 먼저 선택한다.
2번이 이벤트를 처리하는 곳이다. 알파벳순으로 보려면 이벤트 버튼 누르고 나서 A-Z 버튼을 누르면 된다.
더블클릭하고 나면 아래와 같이 화면에 적용되면서 곧바로 코드 입력창이 나온다.
if (e.KeyCode == Keys.Enter) // 엔터키가 눌려졌으면
{
btnSearch_Click(sender, e);
}
를 추가해준다.
프로그램이 실행될 때 객체와 폼이 생성되어 처음 표시되기전에 발생하는 Load 이벤트는 딱 한번만 호출된다.
호출 순서는 생성자가 우선이다. 생성자가 먼저 호출되어 일단 객체로서의 초기화를 수행하고 이어서 폼이 화면에 나타나기 전에 Load 이벤트가 전달되어 폼으로의 초기화를 수행한다.
private void MainForm_Load(object sender, EventArgs e)
{
// 데이터베이스에서 테이블 정보 가져오기
ds = GetAllItems();
}
FormClosing 이벤트는 폼이 종료되기 전에 발생하며, FormClosing 이벤트를 받았을 때는 아직 폼이 종료된 것이 아니므로 이 단계에서 종료를 취소할 수도 있다.
하지만, FormClosed 이벤트는 미 저장 문서가 있다고 하더라도 종료를 취소할 수는 없다.
폼에 자식 폼 또는 소유되는 폼이 있는 경우에는 각 폼에 대해서도 FormClosing 이벤트가 발생한다.
폼 중 하나에서 이 이벤트를 취소하면 모든 폼이 닫히지 않는다. 따라서 모든 폼에 해당 FormClosed 이벤트가 보내지지 않는다.
FormClosingEventArgs 클래스는 이 이벤트에 대한 데이터를 제공한다. 두 개의 중요한 멤버는 Cancel 및 CloseReason 속성이다.
Cancel 속성을 true로 설정하면 이 이벤트를 취소할 수 있다. CloseReason 속성은 폼을 닫는 이유를 제공한다.
private void MainForm_Load(object sender, EventArgs e)
{
frmLogin f2 = new frmLogin(); // 클래스 이름
f2.ShowDialog(); //로그인 폼
if (f2.getID == null) // 로그인 폼에서 전달받은 ID 정보가 없으면
{
Application.Exit();
}
else
{
this.Text = "Service " + f2.getID;
this.WindowState = FormWindowState.Maximized;
// 데이터베이스에서 테이블 정보 가져오기
}
이처럼 이벤트는 클래스내에 특정한 일(event)이 있어났음을 외부의 이벤트 가입자(subscriber)에게 알려주는 기능을 하며 코딩시 자주 사용한다.
'C# > 문법 및 기능' 카테고리의 다른 글
C# Controls (0) | 2015.09.18 |
---|---|
C# TextBox 입력값(한글, 영문, 숫자) 검사, 엔터키 입력, readonly (0) | 2015.09.11 |
C# 콤보박스(comboBox) (0) | 2015.09.09 |
C# 정규식을 이용한 문자열 체크 (0) | 2015.08.25 |
C# 기본개념 이해 (클래스, 조건문 개념 등) (0) | 2015.08.12 |