다음을 통해 공유


리본 개체 모델 개요

Microsoft Visual Studio Tools for Office Runtime 가져오고 런타임에 리본 컨트롤의 속성을 설정 하는 데 사용할 수 있는 강력한 형식의 개체 모델을 노출 합니다.예를 들어 메뉴 컨트롤을 동적으로 채우거나, 컨트롤을 상황에 따라 표시하고 숨길 수 있습니다.리본, 하지만 리본 메뉴가 Office 응용 프로그램으로 로드 하기 전에 탭, 그룹 및 컨트롤을 추가할 수도 있습니다.자세한 내용은 읽기 전용이 되는 속성 설정을 참조하십시오.

적용 대상: 이 항목의 정보는 Excel 2013 및 Excel 2010, InfoPath 2013 및 InfoPath 2010, Outlook 2013 및 Outlook 2010, PowerPoint 2013 및 PowerPoint 2010, Project 2013 및 Project 2010, Visio 2013 및 Visio 2010, Word 2013 및 Word 2010의 문서 수준 프로젝트 및 응용 프로그램 수준 프로젝트에 적용됩니다. 자세한 내용은 Office 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

이 리본 개체 모델은 주로 리본 클래스, 리본 이벤트 및 리본 컨트롤 클래스로 구성됩니다.

리본 클래스

추가 하는 경우 새 리본 (비주얼 디자이너) Visual Studio 추가 프로젝트에 항목을 Ribbon 클래스를 프로젝트.Ribbon 클래스는 RibbonBase 클래스에서 상속합니다.

이 클래스는 리본 코드 파일과 리본 디자이너 코드 파일로 나뉘는 partial 클래스로 나타납니다.

리본 이벤트

Ribbon 클래스는 다음과 같은 세 가지 이벤트를 포함 합니다.

Event

설명

RibbonBase.Load

리본 메뉴 사용자 지정 Office 응용 프로그램을 로드할 때 발생 합니다.Load 이벤트 처리기는 리본 코드 파일에 자동으로 추가 됩니다.이 이벤트 처리기에서 리본을 로드할 때 사용자 지정 코드를 실행 하려면 사용 합니다.

RibbonBase.LoadImage

리본을 로드할 때 리본 사용자 지정의 이미지를 캐시할 수 있습니다.이 이벤트 처리기에서 리본 이미지를 캐시 하는 코드를 작성 하는 경우 약간의 성능 향상을 얻을 수 있습니다.자세한 내용은 LoadImage을 참조하십시오.

RibbonBase.Close

리본 인스턴스가 닫힐 때 발생 합니다.

리본 컨트롤

Microsoft.Office.Tools.Ribbon 네임스페이스에는 도구 상자Office 리본 컨트롤 그룹에 표시되는 각 컨트롤에 대한 형식이 포함되어 있습니다.

유형 각각에 대해 다음 표에 나와 Ribbon 컨트롤입니다.각 컨트롤에 대한 설명은 리본 개요을 참조하십시오.

컨트롤 이름

클래스 이름

Box

RibbonBox

Button

RibbonButton

ButtonGroup

RibbonButtonGroup

CheckBox

RibbonCheckBox

ComboBox

RibbonComboBox

DropDown

RibbonDropDown

EditBox

RibbonEditBox

Gallery

RibbonGallery

Group

RibbonGroup

레이블

RibbonLabel

메뉴

RibbonMenu

Separator

RibbonSeparator

SplitButton

RibbonSplitButton

Tab

RibbonTab

ToggleButton

RibbonToggleButton

Microsoft.Office.Tools.Ribbon 네임스페이스에서는 이러한 형식에 대해 "Ribbon" 접두사를 사용하여 System.Windows.Forms 네임스페이스에 있는 컨트롤 클래스와의 이름 충돌을 방지합니다.

리본 디자이너에 컨트롤을 추가하면 리본 디자이너에서 해당 컨트롤에 대한 클래스를 리본 디자이너 코드 파일의 필드로 선언합니다.

Bb608623.collapse_all(ko-kr,VS.110).gif리본 컨트롤의 속성을 사용한 일반적인 작업

각 Ribbon 컨트롤의 컨트롤에 레이블을 할당 하거나 숨기고 컨트롤 표시 등 다양 한 작업을 수행 하는 데 사용할 수 있는 속성을 포함 합니다.

경우에 따라 속성 리본 메뉴를 로드 한 후 또는 동적 메뉴에 컨트롤이 추가 된 후 읽기 전용이 됩니다.자세한 내용은 읽기 전용이 되는 속성 설정을 참조하십시오.

다음 표를 사용 하 여 수행할 수 있는 작업 중 일부를 설명 Ribbon 속성을 제어 합니다.

작업

작업 방법

컨트롤을 숨기거나 표시합니다.

Visible 속성을 사용합니다.

컨트롤을 활성화하거나 비활성화합니다.

Enabled 속성을 사용합니다.

컨트롤 크기를 설정합니다.

ControlSize 속성을 사용합니다.

컨트롤에 나타나는 이미지를 가져옵니다.

Image 속성을 사용합니다.

컨트롤의 레이블을 변경합니다.

Label 속성을 사용합니다.

컨트롤에 사용자 정의 데이터를 추가합니다.

Tag 속성을 사용합니다.

RibbonBox, RibbonDropDown, RibbonGallery 또는

RibbonSplitButton 컨트롤의 항목을 가져옵니다.

Items 속성을 사용합니다.

RibbonComboBox, RibbonDropDown 또는 RibbonGallery 컨트롤에 항목을 추가합니다.

Items 속성을 사용합니다.

RibbonMenu에 컨트롤을 추가합니다.

Items 속성을 사용합니다.

컨트롤에 추가 하 여 RibbonMenu Office 응용 프로그램에 리본 메뉴가 로드 된 후에 설정 해야의 Dynamic 속성을 true Office 응용 프로그램에 리본 메뉴가 로드 되기 전에.자세한 내용은 읽기 전용이 되는 속성 설정을 참조하십시오.

RibbonComboBox,

RibbonDropDown 또는 RibbonGallery의 선택된 항목을 가져옵니다.

SelectedItem 속성을 사용합니다.RibbonComboBox의 경우 Text 속성을 사용합니다.

RibbonTab의 그룹을 가져옵니다.

Groups 속성을 사용합니다.

RibbonGallery에 나타나는 행 및 열의 수를 지정합니다.

RowCountColumnCount 속성을 사용합니다.

읽기 전용이 되는 속성 설정

일부 속성은 리본 메뉴가 로드 되기 전에만 설정할 수 있습니다.이러한 속성은 다음 세 위치에서 설정할 수 있습니다.

  • Visual Studio 속성

  • 생성자에서에서 Ribbon 클래스입니다.

  • 프로젝트에 사용된 ThisAddin, ThisWorkbook 또는 ThisDocument 클래스의 CreateRibbonExtensibilityObject 메서드

동적 메뉴는 몇 가지 예외를 제공합니다.새 컨트롤을 만들, 해당 속성을 설정한 다음도 메뉴가 있는 리본 메뉴를 로드 한 후 런타임에 동적 메뉴에 추가할 수 있습니다.

동적 메뉴에 추가하는 컨트롤의 속성은 아무 때나 설정할 수 있습니다.

자세한 내용은 읽기 전용이 되는 속성 설정을 참조하십시오.

Bb608623.collapse_all(ko-kr,VS.110).gif리본의 생성자에서 속성 설정

속성을 설정할 수 있습니다는 Ribbon 컨트롤의 생성자에서에서 Ribbon 클래스입니다.이 코드는 InitializeComponent 메서드를 호출한 후에 나타나야 합니다.다음 예제에서는 현재 시간이 태평양 표준시(UTC-8) 17:00 이후인 경우에 그룹에 새 단추를 추가합니다.

다음 코드를 추가합니다.

<System.Diagnostics.DebuggerNonUserCode()> _
Public Sub New()
    MyBase.New(Globals.Factory.GetRibbonFactory())

    'This call is required by the Component Designer.
    InitializeComponent()
    Dim MyButton As Microsoft.Office.Tools.Ribbon.RibbonButton = _
        Me.Factory.CreateRibbonButton()
    MyButton.Label = "New Button"
    If System.DateTime.Now.Hour > 16 Then
        Group1.Items.Add(MyButton)
    End If

End Sub
public Ribbon1()
    : base(Globals.Factory.GetRibbonFactory())
{
    InitializeComponent();
    if (System.DateTime.Now.Hour > 16)
    {
        Microsoft.Office.Tools.Ribbon.RibbonButton button =
            this.Factory.CreateRibbonButton();
        button.Label = "New Button";
        group1.Items.Add(button);
    }
}

Visual Studio 2008에서 업그레이드 C# 프로젝트에서는 생성자에서 리본 코드 파일에 표시 됩니다.

만든 C# 프로젝트 또는 Visual Basic 프로젝트에서 Visual Studio 2012, 생성자에서 리본 디자이너 코드 파일에 나타납니다.이 파일의 이름은 YourRibbonItem.Designer.cs 또는 YourRibbonItem.Designer.vb입니다.Visual Basic 프로젝트에서 이 파일을 보려면 먼저 솔루션 탐색기에서 모든 파일 표시 단추를 클릭해야 합니다.

Bb608623.collapse_all(ko-kr,VS.110).gifCreateRibbonExtensibilityObject 메서드에서 속성 설정

속성을 설정할 수 있습니다는 Ribbon 재정의할 때 컨트롤은 CreateRibbonExtensibilityObject 메서드에서 ThisAddin, ThisWorkbook, 또는 ThisDocument 프로젝트의 클래스.CreateRibbonExtensibilityObject 메서드에 대한 자세한 내용은 리본 개요을 참조하십시오.

리본 속성 설정 하는 다음 예제는 CreateRibbonExtensibilityObject 메서드는 ThisWorkbook 클래스에서는 Excel 통합 문서 프로젝트의.

다음 코드를 추가합니다.

Protected Overrides Function CreateRibbonExtensibilityObject() _
    As Microsoft.Office.Core.IRibbonExtensibility
    Dim myCondition As Boolean = True
    If myCondition = True Then
        Dim tempRibbon As New Ribbon1()
        tempRibbon.Tab1.ControlId.ControlIdType = _
            Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office
        tempRibbon.Tab1.ControlId.OfficeId = "TabHome"
        Return Globals.Factory.GetRibbonFactory.CreateRibbonManager _
            (New Microsoft.Office.Tools.Ribbon.IRibbonExtension() {tempRibbon})
    Else
        Dim tempRibbon As New Ribbon2()
        tempRibbon.Tab1.ControlId.ControlIdType = _
            Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office
        tempRibbon.Tab1.ControlId.OfficeId = "TabInsert"
        Return Globals.Factory.GetRibbonFactory.CreateRibbonManager _
            (New Microsoft.Office.Tools.Ribbon.IRibbonExtension() {tempRibbon})
    End If
End Function
protected override Microsoft.Office.Core.IRibbonExtensibility
    CreateRibbonExtensibilityObject()
{
    bool myCondition = false;
    if (myCondition == true)
    {
        Ribbon1 tempRibbon = new Ribbon1();
        tempRibbon.tab1.ControlId.ControlIdType =
            Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office;
        tempRibbon.tab1.ControlId.OfficeId = "TabHome";
        return Globals.Factory.GetRibbonFactory().CreateRibbonManager( 
            new Microsoft.Office.Tools.Ribbon.IRibbonExtension[]
             { tempRibbon });
    }
    else
    {
        Ribbon2 tempRibbon = new Ribbon2();
        tempRibbon.tab1.ControlId.ControlIdType =
            Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office;
        tempRibbon.tab1.ControlId.OfficeId = "TabInsert";
        return Globals.Factory.GetRibbonFactory().CreateRibbonManager(
                            new Microsoft.Office.Tools.Ribbon.IRibbonExtension[] { tempRibbon });
    }
}

Bb608623.collapse_all(ko-kr,VS.110).gif읽기 전용이 되는 속성

다음 표에서는 리본 메뉴가 로드되기 전에만 설정할 수 있는 속성을 보여 줍니다.

[!참고]

동적 메뉴의 컨트롤 속성은 아무 때나 설정할 수 있습니다.이러한 경우 다음 표의 내용이 적용되지 않습니다.

속성

리본 컨트롤 클래스

BoxStyle

RibbonBox

ButtonType

RibbonSplitButton

ColumnCount

RibbonGallery

ControlId

RibbonTab

DialogLauncher

RibbonGroup

Dynamic

RibbonMenu

Global

OfficeRibbon

그룹

RibbonTab

ImageName

RibbonButton

RibbonComboBox

RibbonDialogLauncher

RibbonDropDown

RibbonEditBox

RibbonGallery

RibbonMenu

RibbonSplitButton

RibbonToggleButton

ItemSize

RibbonMenu

RibbonSplitButton

MaxLength

RibbonComboBox

RibbonEditBox

이름

RibbonComponent

위치

RibbonButton

RibbonCheckBox

RibbonGallery

RibbonGroup

RibbonMenu

RibbonSeparator

RibbonSplitButton

RibbonTab

RibbonToggleButton

RibbonType

OfficeRibbon

RowCount

RibbonGallery

ShowItemImage

RibbonComboBox

RibbonDropDown

RibbonGallery

ShowItemLabel

RibbonDropDown

RibbonGallery

ShowItemSelection

RibbonGallery

SizeString

RibbonComboBox

RibbonDropDown

RibbonEditBox

StartFromScratch

OfficeRibbon

OfficeRibbon

제목

RibbonSeparator

Bb608623.collapse_all(ko-kr,VS.110).gifOutlook 검사기에 나타나는 리본 메뉴의 속성 설정

리본 메뉴의 새 인스턴스를 사용자 리본 메뉴가 나타나는 검사기를 열 때마다 만들어집니다.그러나 리본 메뉴의 첫 번째 인스턴스를 만들기 전에 테이블 위에 나열 된 속성을 설정할 수 있습니다.후 첫 번째 인스턴스가 만들어진 이러한 속성을 첫 번째 인스턴스가 Outlook을 사용 하 여 리본 메뉴를 로드 하는 XML 파일을 정의 하기 때문에 읽기 전용이 됩니다.

리본 메뉴의 다른 인스턴스가 만들어질 때 이러한 속성을 다른 값으로 설정 하는 조건부 논리가 있는 경우이 코드가 효과가 없습니다.

[!참고]

확인은 이름 Outlook 리본 메뉴에 추가한 각 컨트롤에 대해 속성을 설정 합니다.런타임에 Outlook 리본 메뉴에 컨트롤을 추가 하는 경우 코드에서이 속성을 설정 해야 합니다.디자인 타임에 Outlook 리본 메뉴에 컨트롤을 추가 하는 경우는 Name 속성이 자동으로 설정 됩니다.

리본 컨트롤 이벤트

각 컨트롤 클래스에는 하나 이상의 이벤트가 포함되어 있습니다.다음 표에서는 이러한 이벤트를 설명합니다.

Event

설명

Click

컨트롤을 클릭하면 발생합니다.

TextChanged

입력란 또는 콤보 상자의 텍스트가 변경되면 발생합니다.

ItemsLoading

Office에서 컨트롤의 Items 컬렉션이 필요한 경우에 발생합니다.코드를 통해 컨트롤의 속성이 변경될 때까지 Office에서 Items 컬렉션을 캐시하거나 사용자가 직접 IRibbonUI.InvalidateControl 메서드를 호출할 수 있습니다.

ButtonClick

RibbonGallery 또는 RibbonDropDown의 단추를 클릭하면 발생합니다.

SelectionChanged

RibbonDropDown 또는 RibbonGallery의 선택 영역이 변경되면 발생합니다.

DialogLauncherClick

그룹의 오른쪽 아래에 있는 대화 상자 표시 아이콘을 클릭하면 발생합니다.

이러한 이벤트에 대한 이벤트 처리기에는 다음 두 개의 매개 변수가 사용됩니다.

Parameter

설명

sender

이벤트를 발생시킨 컨트롤을 나타내는 Object입니다.

e

Microsoft.Office.Core.IRibbonControl이 들어 있는 RibbonControlEventArgs입니다.이 컨트롤은 Microsoft Visual Studio Tools for Office Runtime에서 제공하는 리본 개체 모델에서 사용할 수 없는 속성에 액세스하는 데 사용합니다.

참고 항목

작업

방법: 리본 메뉴 사용자 지정 시작

연습: 리본 디자이너를 사용하여 사용자 지정 탭 만들기

연습: 런타임에 리본 메뉴의 컨트롤 업데이트

방법: 기본 제공 탭 사용자 지정

방법: Backstage 보기에 컨트롤 추가

방법: 리본 디자이너에서 리본 XML로 리본 메뉴 내보내기

방법: 추가 기능 사용자 인터페이스 오류 표시

참조

Microsoft.Office.Tools.Ribbon

개념

런타임에 리본 메뉴에 액세스

리본 디자이너

Outlook에 대해 리본 메뉴 사용자 지정

기타 리소스

리본 개요