세 개의 버튼을 만들고 테스트 해봅시다.

 

프로그램 중간에 종료를 시켜야 하는 경우 위의 3가지 방식을 사용할 수 있습니다.

각 특징은 아래와 같습니다.

 

Close() : 해당되는 폼만 닫습니다.

                

Application.Exit() : 다른 서브 폼에서 호출 해도 메인 폼의 Close()까지 동작되게 됩니다.

 

Environment.Exit(0) : 이 곳에서 바로 종료됩니다.

 

using System;
using System.Windows.Forms;

namespace CloseTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Close();
            //이 후 로직도 타게 됩니다.
            //무언가 로직 실행... (+ FormClosing)
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
            //이 후 로직도 타게 됩니다.
            //무언가 로직 실행... (+ FormClosing)
        }

        private void button3_Click(object sender, EventArgs e)
        {
            Environment.Exit(0);
            //바로 종료 됩니다. (FormClosing을 타지 않습니다.)
            //실행되지 않는 이 후 로직!
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            //Close(), Application.Exit() 시에 이 곳까지 도달합니다.

            e.Cancel = true; //프로그램이 종료되지 못하도록 막습니다.
        }
    }
}

+ Recent posts