728x90

키를 입력하면 반응하는 이벤트 처리하는 방법이다.

소스코드 화면에 있다면 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)에게 알려주는 기능을 하며 코딩시 자주 사용한다.


블로그 이미지

Link2Me

,