연습: 메뉴 병합 및 ToolStrip 컨트롤을 사용하여 MDI 양식 만들기

System.Windows.Forms 네임스페이스는 MDI(다중 문서 인터페이스) 애플리케이션을 지원하고 MenuStrip 컨트롤은 메뉴 병합을 지원합니다. MDI 폼은 ToolStrip 컨트롤일 수도 있습니다.

이 연습에서는 MDI 양식에서 ToolStripPanel 컨트롤을 사용하는 방법을 보여 줍니다. 폼은 자식 메뉴와 메뉴 병합도 지원합니다. 이 연습에서는 다음 작업을 보여 줍니다.

  • Windows Forms 프로젝트 만들기

  • 양식에 대한 주 메뉴를 만듭니다. 메뉴의 실제 이름은 달라집니다.

  • 도구 상자ToolStripPanel 컨트롤을 추가합니다.

  • 자식 폼 만들기.

  • ToolStripPanel 컨트롤을 z 순서로 정렬합니다.

완료되면 메뉴 병합 및 이동 가능한 ToolStrip 컨트롤을 지원하는 MDI 양식이 생깁니다.

이 항목의 코드를 단일 목록으로 복사하려면 방법: 메뉴 병합 및 ToolStrip 컨트롤을 사용하여 MDI 양식 만들기를 참조하세요.

필수 구성 요소

이 연습을 완료하려면 Visual Studio가 필요합니다.

프로젝트 만들기

  1. Visual Studio에서 MdiForm이라는 Windows 애플리케이션 프로젝트를 만듭니다(파일>새로 만들기>프로젝트>Visual C# 또는 Visual Basic>클래식 데스크톱>Windows Forms 애플리케이션).

  2. Windows Forms 디자이너에서 폼을 선택합니다.

  3. 속성 창에서 IsMdiContainer 값을 true로 설정합니다.

주 메뉴 만들기

부모 MDI 양식에는 주 메뉴가 포함되어 있습니다. 주 메뉴에는 Window라는 하나의 메뉴 항목이 있습니다. Window 메뉴 항목을 사용하여 자식 양식을 만들 수 있습니다. 자식 양식의 메뉴 항목이 주 메뉴에 병합됩니다.

  1. 도구 상자에서 MenuStrip 컨트롤을 폼으로 끌어 옵니다.

  2. MenuStrip 컨트롤에 ToolStripMenuItem을 추가하고 이름을 Window로 지정합니다.

  3. MenuStrip 컨트롤을 선택합니다.

  4. 속성 창에서 MdiWindowListItem 속성의 값을 ToolStripMenuItem1로 설정합니다.

  5. Window 메뉴 항목에 하위 항목을 추가한 다음, 하위 항목의 이름을 새로 지정합니다.

  6. 속성 창에서 이벤트를 클릭합니다.

  7. Click 이벤트를 두 번 클릭합니다.

    Windows Forms 디자이너는 Click 이벤트에 대한 이벤트 처리기를 생성합니다.

  8. 이벤트 처리기에 다음 코드를 삽입합니다.

    // This method creates a new ChildForm instance
    // and attaches it to the MDI parent form.
    private void newToolStripMenuItem_Click(object sender, EventArgs e)
    {
        ChildForm f = new ChildForm();
        f.MdiParent = this;
        f.Text = "Form - " + this.MdiChildren.Length.ToString();
        f.Show();
    }
    
    ' This method creates a new ChildForm instance 
    ' and attaches it to the MDI parent form.
     Private Sub newToolStripMenuItem_Click( _
     ByVal sender As Object, _
     ByVal e As EventArgs) _
     Handles newToolStripMenuItem.Click
    
         Dim f As New ChildForm()
         f.MdiParent = Me
         f.Text = "Form - " + Me.MdiChildren.Length.ToString()
         f.Show()
    
     End Sub
    

도구 상자에 ToolStripPanel 컨트롤 추가

MDI 양식에서 MenuStrip 컨트롤을 사용하는 경우 ToolStripPanel 컨트롤이 있어야 합니다. Windows Forms 디자이너에서 MDI 양식을 작성하려면 도구 상자ToolStripPanel 컨트롤을 추가해야 합니다.

  1. 도구 상자를 연 다음, 모든 Windows Forms 탭을 클릭하여 사용 가능한 Windows Forms 컨트롤을 표시합니다.

  2. 마우스 오른쪽 단추를 클릭하여 바로 가기 메뉴를 열고 항목 선택을 선택합니다.

  3. 도구 상자 항목 선택 대화 상자에서 ToolStripPanel을 찾을 때까지 이름 열을 아래로 스크롤합니다.

  4. ToolStripPanel 옆의 확인란을 선택한 다음, 확인을 클릭합니다.

    도구 상자ToolStripPanel 컨트롤이 나타납니다.

자식 양식 만들기

이 절차에서는 자체 MenuStrip 컨트롤이 있는 별도의 자식 양식 클래스를 정의합니다. 이 양식의 메뉴 항목은 부모 양식의 메뉴 항목과 병합됩니다.

  1. 프로젝트에 ChildForm이라는 새 양식을 추가합니다.

    자세한 내용은 방법: 프로젝트에 Windows Forms 추가를 참조하세요.

  2. 도구 상자에서 MenuStrip 컨트롤을 자식 폼으로 끌어 옵니다.

  3. MenuStrip 컨트롤의 디자이너 작업 문자 모양(작은 검은색 화살표)을 클릭한 다음, 항목 편집을 선택합니다.

  4. 항목 컬렉션 편집기 대화 상자에서 ChildMenuItem이라는 새 ToolStripMenuItem을 자식 메뉴에 추가합니다.

    자세한 내용은 ToolStrip 항목 컬렉션 편집기를 참조하세요.

양식 테스트

  1. F5를 눌러 양식을 컴파일하고 실행합니다.

  2. Window 메뉴 항목을 클릭하여 메뉴를 연 다음, 새로 만들기를 클릭합니다.

    양식의 MDI 클라이언트 영역에 새 자식 양식이 만들어집니다. 자식 폼의 메뉴가 주 메뉴와 병합됩니다.

  3. 자식 폼을 닫습니다.

    자식 폼의 메뉴가 주 메뉴에서 제거됩니다.

  4. 새로 만들기를 여러 번 클릭합니다.

    MenuStrip 컨트롤의 MdiWindowListItem 속성이 할당되어 있으므로 자식 양식이 Window 메뉴 항목 아래에 자동으로 나열됩니다.

ToolStrip 지원 추가

이 절차에서는 MDI 부모 폼에 네 개의 ToolStrip 컨트롤을 추가합니다. 각 ToolStrip 컨트롤은 폼의 가장자리에 도킹되는 ToolStripPanel 컨트롤 내부에 추가됩니다.

  1. 도구 상자에서 ToolStripPanel 컨트롤을 폼으로 끌어 옵니다.

  2. ToolStripPanel 컨트롤을 선택한 상태에서 도구 상자에서 ToolStrip 컨트롤을 두 번 클릭합니다.

    ToolStrip 컨트롤은 ToolStripPanel에 만들어집니다.

  3. ToolStripPanel 컨트롤을 선택합니다.

  4. 속성 창에서 컨트롤의 Dock 속성 값을 Left로 변경합니다.

    ToolStripPanel 컨트롤은 주 메뉴 아래의 양식 왼쪽에 도킹됩니다. MDI 클라이언트 영역은 ToolStripPanel 컨트롤에 맞게 크기가 조정됩니다.

  5. 1~4단계를 반복합니다.

    ToolStripPanel 컨트롤을 폼의 맨 위에 도킹합니다.

    ToolStripPanel 컨트롤은 주 메뉴 아래에 도킹되어 있지만 첫 번째 ToolStripPanel 컨트롤의 오른쪽에 있습니다. 이 단계에서는 ToolStripPanel 컨트롤의 위치를 올바르게 지정하는 z 순서의 중요성을 보여 줍니다.

  6. 두 개의 추가 ToolStripPanel 컨트롤에 대해 1~4단계를 반복합니다.

    폼의 오른쪽과 아래쪽에 새 ToolStripPanel 컨트롤을 도킹합니다.

Z 순서로 ToolStripPanel 컨트롤 정렬

MDI 폼에서 도킹된 ToolStripPanel 컨트롤의 위치는 z 순서에서 컨트롤의 위치에 따라 결정됩니다. 문서 개요 창에서 컨트롤의 z 순서를 쉽게 정렬할 수 있습니다.

  1. 보기 메뉴에서 다른 창을 클릭한 다음, 문서 개요를 클릭합니다.

    이전 절차에서 ToolStripPanel 컨트롤의 정렬은 비표준입니다. 이는 z 순서가 올바르지 않기 때문입니다. 문서 개요 창을 사용하여 컨트롤의 z 순서를 변경합니다.

  2. 문서 개요 창에서 ToolStripPanel4를 선택합니다.

  3. ToolStripPanel4가 목록의 맨 아래에 표시될 때까지 아래쪽 화살표 단추를 반복해서 클릭합니다.

    ToolStripPanel4 컨트롤은 다른 컨트롤 아래에 있는 폼의 아래쪽에 도킹됩니다.

  4. ToolStripPanel2를 선택합니다.

  5. 아래쪽 화살표 단추를 한 번 클릭하여 컨트롤을 목록에서 세 번째로 배치합니다.

    ToolStripPanel2 컨트롤은 폼의 상단, 주 메뉴 아래 다른 컨트롤에 도킹됩니다.

  6. 문서 개요 창에서 다양한 컨트롤을 선택하고 z 순서의 다른 위치로 이동합니다. 도킹된 컨트롤의 배치에 대한 z 순서의 영향을 확인합니다. 편집 메뉴에서 CTRL-Z 또는 실행 취소를 사용하여 변경 내용을 실행 취소합니다.

검사점 - 양식 테스트

  1. F5를 눌러 양식을 컴파일하고 실행합니다.

  2. ToolStrip 컨트롤의 그립을 클릭하고 컨트롤을 폼의 다른 위치로 끕니다.

    ToolStrip 컨트롤을 한 ToolStripPanel 컨트롤에서 다른 컨트롤로 끌 수 있습니다.

다음 단계

이 연습에서는 ToolStrip 컨트롤과 메뉴가 병합된 MDI 부모 양식을 만들었습니다. 다른 많은 용도로 ToolStrip 컨트롤 패밀리를 사용할 수 있습니다.

참고 항목