[winform] MDI

728x90

1. MDI란? 

multiple Document Interface의 약자입니다. 

 

하나의 Form 안에서 여러 폼들이 작동한다고 생각하시면 됩니다.

 

예컨대 아래 그림같은 모양입니다.

 

 

 

 

2. 사용방법

 

우선 버튼 도구를 하나 만듭니다.

 

그리고 프로젝트에서 우클릭하여 추가 → 새항목 → Windows Forms를 만듭니다.

 

아래 그림에서 네모박스 Windows Forms를 클릭하고 이름을 입력하고 추가 버튼을 클릭하면 됩니다.

 

form1과 form2 를 구분하기 위해 다르게 디자인 해놓겠습니다.

 

form1 디자인

 

form2 디자인

 

버튼 클릭시 form2를 불러오는 함수는 아래와 같이 작성하시면 됩니다.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

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

        private void button1_Click(object sender, EventArgs e)
        {
            
            Form2 form2 = new Form2();

            //Form2를 불러오는 코드
            
            form2.Show();
        }
    }
}

 

 

이런방식으로 호출이 됩니다. 이제 MDI를 적용해보겠습니다.

 

먼저 부모가 되는 Form1 속성에서 IsMdiContainer를 True로 변경합니다.

 

 

그리고 Form1.cs의 코드를 아래와 같이 작성하시면 됩니다.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

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

        private void button1_Click(object sender, EventArgs e)
        {
            
            Form2 form2 = new Form2();

            //Form2를 불러오는 코드
            form2.MdiParent = this; //MDI 부모 폼을 Form1으로 설정
            form2.Show();
        }
    }
}