[C#기초] 16. 대화상자

INDEX

  1. 대화상자
  2. 모달형 대화상자
  3. 모델리스형 대화상자
  4. 공용대화상자

대화상자

개요

종류

모델리스와 모달형 차이점

모델리스형 모달형
메인 폼의 기능 사용 가능 메인 폼의 기능 사용 불가능
Show() ShowDialog()
일반적으로 멤버 변수로 선언 (지속적인 사용) 일반적으로 지역 변수로 선언 (일회성 사용)

모달형 대화상자

모달형 대화상자 폼 생성

image

모달형 대화상자 생성

모달형 대화상자 화면 출력과 해제

모달형 대화상자 결과 점검

메인 폼에서 모달형 대화상자 데이터 접근 방법

메인폼과 모달형 대화상자 간의 데이터 전송

모달형 대화상자 예시 코드

모달형 대화상자 값 전달 예시

Owner 통하여 값 전달 예시

모델리스형 대화상자

모델리스형 대화상자

일반적인 것들은 모달형 대화상자와 같지만

Dlg.ShowDialog() 가 아닌 Dlg.Show()를 통해 폼을 만든다.

모델리서형 대화상자 출력 예시

Form2 Dlg = null;

private void button1_Click(object sender, EventArgs e)
{
    if(Dlg == null)  //대화상자를 하나만 만들기 위한 if문
    {
        Dlg = new Form2();
        Dlg.Show();
    }
}

공용대화상자

공용대화상자 쓰임새 예시

OpenFileDailog와 SaveFileDialog class

SaveFileDialog

SaveFileDialog 창 띄우기 예시 코드

SaveFileDialog를 이용하여 파일 저장 예시 코드

private void button1_Click(object sender, EventArgs e)
{
    string Message = "Hello World!";
    Stream myStream;
    saveFileDialog1.DefaultExt = "dat";
    saveFileDialog1.Filter = "데이터(*.dat)|*.dat|워드(*.doc)|*.doc";
    if(saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
        if((myStream = saveFileDialog1.OpenFile()) != null)
            using (BinaryWriter bw = new BinaryWriter(myStream))
        {
            bw.Write(Message);
        }
    }
}

OpenFileDialog

OpenFileDialog를 이용하여 파일 읽기 예시 코드

private void button2_Click(object sender, EventArgs e)
{
    Stream myStream;
    openFileDialog1.Filter = "데이터(*.dat)|*.dat|워드(*.doc)|*.doc";
    if(openFileDialog1.ShowDialog()==DialogResult.OK)
    {
        if((myStream = openFileDialog1.OpenFile()) != null)
        {
            using (BinaryReader br = new BinaryReader(myStream))
            {
                MessageBox.Show(br.ReadString());
            }
        }
    }
}

ColorDialog

ColorDialog 예제 코드

Color color1;

private void button3_Click(object sender, EventArgs e)
{
    if(colorDialog1.ShowDialog() == DialogResult.OK)
    {
        color1 = colorDialog1.Color;
        MessageBox.Show(color1.ToString());
    }
}