Share via


연습: 사용자 지정 작업창과 리본 단추 동기화

이 연습에서는 사용자가 리본의 토글 단추를 클릭하여 숨기거나 표시할 수 있는 사용자 지정 작업창을 만드는 방법을 보여 줍니다. Microsoft Office 애플리케이션에서는 사용자가 사용자 지정 작업창을 표시하거나 숨기는 기본 방법을 제공하지 않으므로 사용자가 클릭하여 사용자 지정 작업창을 표시하거나 숨길 수 있도록 단추와 같은 UI(사용자 인터페이스) 요소를 항상 만들어야 합니다.

적용 대상: 이 항목의 정보는 Outlook의 VSTO 추가 기능 프로젝트에 적용됩니다. 자세한 내용은 Office 애플리케이션 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하세요.

이 연습에서는 Excel을 사용하지만 위에 나열된 애플리케이션에도 연습에서 설명하는 개념을 적용할 수 있습니다.

이 연습에서는 다음 작업을 수행합니다.

  • 사용자 지정 작업창의 UI 디자인

  • 토글 단추를 리본에 추가

  • 토글 단추를 사용자 지정 작업창과 동기화

참고 항목

일부 Visual Studio 사용자 인터페이스 요소의 경우 다음 지침에 설명된 것과 다른 이름 또는 위치가 시스템에 표시될 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio IDE 개인 설정을 참조하세요.

필수 조건

이 연습을 완료하려면 다음과 같은 구성 요소가 필요합니다.

추가 기능 프로젝트 만들기

이 단계에서는 Excel용 VSTO 추가 기능 프로젝트를 만듭니다.

새 프로젝트를 만들려면

  1. Excel 추가 기능 프로젝트 템플릿을 사용하여 SynchronizeTaskPaneAndRibbon이라는 이름의 Excel 추가 기능 프로젝트를 만듭니다. 자세한 내용은 방법: Visual Studio에서 Office 프로젝트 만들기를 참조하세요.

    Visual Studio는 ThisAddIn.cs 또는 ThisAddIn.vb 코드 파일을 열고 SynchronizeTaskPaneAndRibbon 프로젝트를 솔루션 탐색기에 추가합니다.

리본에 토글 단추 추가

Office 애플리케이션의 디자인 지침 중 하나는 사용자가 항상 Office 애플리케이션 UI를 제어할 수 있어야 한다는 것입니다. 사용자가 사용자 지정 작업창을 제어할 수 있도록 작업창을 표시하고 숨기는 리본 토글 단추를 추가할 수 있습니다. 토글 단추를 만들려면 프로젝트에 리본(비주얼 디자이너) 항목을 추가합니다. 이 디자이너는 컨트롤을 추가 및 배치하고, 컨트롤 속성을 설정하고, 컨트롤 이벤트를 처리하는 데 유용합니다. 자세한 내용은 리본 디자이너를 참조하세요.

토글 단추를 리본에 추가하려면

  1. 프로젝트 메뉴에서 새 항목 추가를 클릭합니다.

  2. 새 항목 추가 대화 상자에서 리본(비주얼 디자이너)을 선택합니다.

  3. 새 리본의 이름을 ManageTaskPaneRibbon으로 변경하고 추가를 클릭합니다.

    ManageTaskPaneRibbon.cs 또는 ManageTaskPaneRibbon.vb 파일이 리본 디자이너에서 열리고 기본 탭 및 그룹이 표시됩니다.

  4. 리본 디자이너에서 group1을 클릭합니다.

  5. 속성 창에서 Label 속성을 작업창 관리자로 설정합니다.

  6. 도구 상자Office 리본 컨트롤탭에서 ToggleButton작업창 관리자 그룹으로 끌어 놓습니다.

  7. toggleButton1을 클릭합니다.

  8. 속성 창에서 Label 속성을 작업창 표시로 설정합니다.

사용자 지정 작업창의 사용자 인터페이스 디자인

사용자 지정 작업창을 위한 비주얼 디자이너는 없지만 원하는 레이아웃을 사용하여 사용자 정의 컨트롤을 디자인할 수 있습니다. 이 연습 뒷부분에서는 사용자 지정 작업창에 사용자 정의 컨트롤을 추가합니다.

사용자 지정 작업창의 사용자 인터페이스를 디자인하려면

  1. 프로젝트 메뉴에서 사용자 정의 컨트롤 추가를 클릭합니다.

  2. 새 항목 추가 대화 상자에서 새 사용자 정의 컨트롤의 이름을 TaskPaneControl로 변경하고 추가를 클릭합니다.

    사용자 정의 컨트롤이 디자이너에서 열립니다.

  3. 도구 상자공용 컨트롤탭에서 TextBox 컨트롤을 사용자 정의 컨트롤로 끌어 놓습니다.

사용자 지정 작업창을 만들기

VSTO 추가 기능이 시작될 때 사용자 지정 작업창을 만들려면 사용자 정의 컨트롤을 VSTO 추가 기능의 Startup 이벤트 처리기 작업창에 추가합니다. 기본적으로 사용자 지정 작업창은 표시되지 않습니다. 이 연습의 뒷부분에서는 사용자가 리본에 추가한 토글 단추를 클릭할 때 작업창을 표시하거나 숨기는 코드를 추가합니다.

사용자 지정 작업창을 만들려면

  1. 솔루션 탐색기에서 Excel을 확장합니다.

  2. ThisAddIn.cs 또는 ThisAddIn.vb 를 마우스 오른쪽 단추로 클릭하고 코드 보기를 클릭합니다.

  3. ThisAddIn 클래스에 다음 코드를 추가합니다. 이 코드에서는 TaskPaneControl 의 인스턴스를 ThisAddIn의 구성원으로 선언합니다.

    private TaskPaneControl taskPaneControl1;
    private Microsoft.Office.Tools.CustomTaskPane taskPaneValue;
    
  4. ThisAddIn_Startup 이벤트 처리기를 다음 코드로 바꿉니다. 이 코드에서는 TaskPaneControl 개체를 CustomTaskPanes 필드에 추가하지만 사용자 지정 작업창을 표시하지 않습니다. 기본적으로 Visible 클래스의 CustomTaskPane 속성은 false입니다. Visual C# 코드는 이벤트 처리기를 VisibleChanged 이벤트에도 연결합니다.

    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        taskPaneControl1 = new TaskPaneControl();
        taskPaneValue = this.CustomTaskPanes.Add(
            taskPaneControl1, "MyCustomTaskPane");
        taskPaneValue.VisibleChanged +=
            new EventHandler(taskPaneValue_VisibleChanged);
    }
    
  5. 다음 메서드를 ThisAddIn 클래스에 추가합니다. 이 메서드가 VisibleChanged 이벤트를 처리합니다. 사용자가 닫기 단추(X)를 클릭하여 작업창을 닫으면 이 메서드가 리본의 토글 단추 상태를 업데이트합니다.

    private void taskPaneValue_VisibleChanged(object sender, System.EventArgs e)
    {
        Globals.Ribbons.ManageTaskPaneRibbon.toggleButton1.Checked = 
            taskPaneValue.Visible;
    }
    
  6. 다음 속성을 ThisAddIn 클래스에 추가합니다. 이 속성은 전용 taskPaneValue 개체를 다른 클래스에 노출합니다. 이 연습의 뒷부분에서는 코드를 이 속성을 사용하는 MyRibbon 클래스에 추가합니다.

    public Microsoft.Office.Tools.CustomTaskPane TaskPane
    {
        get
        {
            return taskPaneValue;
        }
    }
    

토글 단추를 사용하여 사용자 지정 작업창 숨기기 및 표시

마지막 단계는 사용자가 리본의 토글 단추를 클릭할 때 사용자 지정 작업창을 표시하거나 숨기는 코드를 추가하는 것입니다.

토글 단추를 사용하여 사용자 지정 작업창을 표시하거나 숨기려면

  1. 리본 디자이너에서 작업창 표시 토글 단추를 두 번 클릭합니다.

    Visual Studio에서 이 토글 단추의 toggleButton1_Click이벤트를 처리하는 Click 이라는 이벤트 처리기가 자동으로 생성됩니다. 또한 MyRibbon.cs 또는 MyRibbon.vb 파일이 코드 편집기에서 열립니다.

  2. toggleButton1_Click 이벤트 처리기를 다음 코드로 바꿉니다. 사용자가 토글 단추를 클릭하면 이 코드에서는 토글 단추를 눌렀는지 안 눌렀는지에 따라 사용자 지정 작업창을 표시하거나 숨깁니다.

    private void toggleButton1_Click(object sender, RibbonControlEventArgs e)
    {
        Globals.ThisAddIn.TaskPane.Visible = ((RibbonToggleButton)sender).Checked;
    }
    

추가 기능 테스트

프로젝트를 실행하면 사용자 지정 작업창을 표시하지 않고 Excel이 열립니다. 리본의 토글 단추를 클릭하면 코드를 테스트합니다.

VSTO 추가 기능을 테스트하려면

  1. F5 키를 눌러 프로젝트를 실행합니다.

    Excel이 열리고 추가 기능 탭이 리본에 나타나는지 확인합니다.

  2. 리본의 추가 기능 탭을 클릭합니다.

  3. 작업창 관리자 그룹에서 작업창 표시 토글 단추를 클릭합니다.

    토글 단추를 클릭할 때 작업창이 번갈아 표시되고 숨겨지는지 확인합니다.

  4. 작업창이 표시되면 작업창의 모퉁이에 있는 닫기 단추(X)를 클릭합니다.

    토글 단추가 눌러지지 않은 상태로 나타나는지 확인합니다.

다음 단계

다음 항목에서는 사용자 지정 작업창을 만드는 방법에 대해 더 자세히 설명합니다.