다음을 통해 공유


.NET Framework 4 또는 .NET Framework 4.5로 마이그레이션하는 Office 프로젝트에서 리본 메뉴 사용자 지정 업데이트

프로젝트에 사용 하 여 만든 리본 메뉴 사용자 지정이 포함 된 경우는 리본 (비주얼 디자이너) 프로젝트 항목, 대상 프레임 워크를 변경 하는 경우는 다음 프로젝트 코드를 변경 해야를 .NET Framework 4 또는 .NET Framework 4.5.

  • 생성된 리본 코드를 수정합니다.

  • 런타임에 리본 컨트롤을 인스턴스화하거나 리본 이벤트를 처리하거나 리본 구성 요소의 위치를 프로그래밍 방식으로 설정하는 코드를 수정합니다.

생성된 리본 코드 업데이트

프로젝트의 대상 프레임 워크를 변경한 경우는 .NET Framework 4 또는 .NET Framework 4.5, 다음 단계를 수행 하 여 리본 항목에 대해 생성 된 코드를 변경 해야 합니다.업데이트해야 하는 코드 파일은 프로젝트를 만든 방법과 프로그래밍 언어에 따라 달라집니다.

  • 만든 C# 프로젝트 또는 Visual Basic 프로젝트에서 Visual Studio 2012 또는 Visual Studio 2010 리본 코드 숨김 파일에서 모든 단계를 수행 (YourRibbonItem.Designer.cs 또는 YourRibbonItem.Designer.vb)입니다.Visual Basic 프로젝트에서 코드 숨김 파일을 보려면 솔루션 탐색기에서 모든 파일 표시 단추를 클릭합니다.

  • Visual Studio 2008에서 작성 하 고 다음 업그레이드 C# 프로젝트에서 Visual Studio 2012, 리본 코드 파일의 처음 두 단계를 수행 (YourRibbonItem.cs 또는 YourRibbonItem.vb), 고 리본 코드 숨김 파일에서 나머지 단계를 수행 합니다.

생성된 리본 코드를 변경하려면

  1. Microsoft.Office.Tools.Ribbon.OfficeRibbon 대신 Microsoft.Office.Tools.Ribbon.RibbonBase에서 파생되도록 리본 클래스의 선언을 수정합니다.

  2. 아래와 같이 리본 클래스의 생성자를 수정합니다.생성자에 고유 코드를 추가한 경우에는 코드를 변경하지 마십시오.Visual Basic 프로젝트에서는 매개 변수가 없는 생성자만 수정하고다른 생성자는 무시합니다.

    다음 코드 예제에서는 .NET Framework 3.5를 대상으로 하는 프로젝트에 있는 리본 클래스의 기본 생성자를 보여 줍니다.

    Public Sub New()
        MyBase.New()
        InitializeComponent()
    End Sub
    
    public Ribbon1()
    {
        InitializeComponent();
    }
    

    다음 코드 예제에서는 대상 프로젝트에 리본 클래스의 기본 생성자를 보여줍니다의 .NET Framework 4 또는 .NET Framework 4.5.

    Public Sub New()
        MyBase.New(Globals.Factory.GetRibbonFactory())
        InitializeComponent()
    End Sub
    
    public Ribbon1()
        : base(Globals.Factory.GetRibbonFactory())
    {
        InitializeComponent();
    }
    
  3. InitializeComponent 메서드에서 리본 컨트롤을 생성하는 코드를 수정하여 코드가 RibbonFactory 개체의 도우미 메서드 중 하나를 대신 사용하도록 합니다.

    [!참고]

    Visual C# 프로젝트에서 InitializeComponent 메서드를 보려면 Component Designer generated code라는 영역을 확장해야 합니다.

    예를 들어 .NET Framework 3.5를 대상으로 하는 프로젝트의 button1이라는 RibbonButton을 인스턴화하는 다음과 같은 코드 줄이 파일에 포함되어 있다고 가정합니다.

    Me.button1 = New Microsoft.Office.Tools.Ribbon.RibbonButton()
    
    this.button1 = new Microsoft.Office.Tools.Ribbon.RibbonButton();
    

    대상으로 하는 프로젝트의 .NET Framework 4 또는 .NET Framework 4.5, 다음 코드를 대신 사용 해야 합니다.

    Me.button1 = Me.Factory.CreateRibbonButton()
    
    this.button1 = this.Factory.CreateRibbonButton();
    

    리본 컨트롤에 대한 도우미 메서드의 전체 목록을 보려면 리본 컨트롤 인스턴스화를 참조하십시오.

  4. Visual C# 프로젝트에서 EventHandler<TEventArgs> 대리자를 사용하는 InitializeComponent 메서드의 코드 줄을 수정하여 특정 대리자를 대신 사용하도록 합니다.

    예를 들어 .NET Framework 3.5를 대상으로 하는 프로젝트의 RibbonButton.Click 이벤트를 처리하는 다음과 같은 코드 줄이 파일에 포함되어 있다고 가정합니다.

    this.button1.Click += new System.EventHandler<Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs>(
        this.button1_Click);
    

    대상으로 하는 프로젝트의 .NET Framework 4 또는 .NET Framework 4.5, 다음 코드를 대신 사용 해야 합니다.

    this.button1.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(
        this.button1_Click);
    

    리본 대리자의 전체 목록을 보려면 리본 이벤트 처리를 참조하십시오.

  5. Visual Basic 프로젝트에서 파일 끝의 ThisRibbonCollection 클래스를 찾습니다.더 이상 Microsoft.Office.Tools.Ribbon.RibbonReadOnlyCollection에서 상속하지 않도록 이 클래스의 선언을 수정합니다.

리본 컨트롤 인스턴스화

리본 컨트롤을 동적으로 인스턴스화하는 코드를 수정해야 합니다..NET Framework 3.5를 대상으로 하는 프로젝트에서 리본 컨트롤은 특정 시나리오에서 직접 인스턴스화할 수 있는 클래스입니다.대상으로 하는 프로젝트의 .NET Framework 4 또는 .NET Framework 4.5, 이러한 컨트롤은 직접 인스턴스화할 수 없는 인터페이스입니다.RibbonFactory 개체에서 제공하는 메서드를 사용하여 컨트롤을 만들어야 합니다.

다음과 같은 두 가지 방법으로 RibbonFactory 개체에 액세스할 수 있습니다.

  • 리본 클래스의 Factory 속성을 사용합니다.리본 클래스 내부의 코드에서 이 방법을 사용합니다.

  • Globals.Factory.GetRibbonFactory 메서드를 사용합니다.리본 클래스 외부의 코드에서 이 방법을 사용합니다.Globals 클래스에 대한 자세한 내용은 Office 프로젝트의 개체에 전역 액세스를 참조하십시오.

다음 코드 예제에서는 만드는 방법을 보여 줍니다.는 RibbonButton 를 대상으로 하는 프로젝트에 리본 클래스에서를 .NET Framework 4 또는 .NET Framework 4.5.

Dim button As Microsoft.Office.Tools.Ribbon.RibbonButton =
    Me.Factory.CreateRibbonButton()
Microsoft.Office.Tools.Ribbon.RibbonButton button =
    this.Factory.CreateRibbonButton();

프로젝트를 대상으로 하는 컨트롤을 만드는 데 사용할 메서드 및 컨트롤을 프로그래밍 방식으로 만들 수 있습니다 다음 표에 나와 있는 .NET Framework 4 또는 .NET Framework 4.5.

컨트롤

RibbonFactory 메서드를 사용 하려면 .NET Framework 4 및 .NET Framework 4.5 프로젝트

RibbonButton

CreateRibbonButton

RibbonButtonGroup

CreateRibbonButtonGroup

RibbonCheckBox

CreateRibbonCheckBox

RibbonComboBox

CreateRibbonComboBox

RibbonDialogLauncher

CreateRibbonDialogLauncher

RibbonDropDown:

CreateRibbonDropDown

RibbonDropDownItem

CreateRibbonDropDownItem

RibbonEditBox

CreateRibbonEditBox

RibbonGallery

CreateRibbonGallery

RibbonGroup

CreateRibbonGroup

RibbonLabel

CreateRibbonLabel

RibbonManager

CreateRibbonManager

RibbonMenu

CreateRibbonMenu

RibbonSeparator

CreateRibbonSeparator

RibbonSplitButton

CreateRibbonSplitButton

RibbonTab

CreateRibbonTab

RibbonToggleButton

CreateRibbonToggleButton

리본 이벤트 처리

리본 컨트롤의 이벤트를 처리하는 코드를 수정해야 합니다..NET Framework 3.5를 대상으로 하는 프로젝트에서는 이러한 이벤트가 제네릭 EventHandler<TEventArgs> 대리자에 의해 처리됩니다.대상으로 하는 프로젝트의 .NET Framework 4 또는 .NET Framework 4.5에서 이러한 이벤트가 이제 다른 대리자에 의해 처리 됩니다.

리본 이벤트 및 대상으로 하는 프로젝트에 관련 된 대리자를 다음 표에 나와 있는 .NET Framework 4 또는 .NET Framework 4.5.

Event

대리자를 사용 하려면 .NET Framework 4 및 .NET Framework 4.5 프로젝트

생성된 리본 클래스의 LoadImage 이벤트

RibbonLoadImageEventHandler

Load

RibbonUIEventHandler

RibbonButton.Click

RibbonCheckBox.Click

RibbonComboBox.ItemsLoading

RibbonComboBox.TextChanged

RibbonDropDown.ButtonClick

RibbonDropDown.ItemsLoading

RibbonDropDown.SelectionChanged

RibbonEditBox.TextChanged

RibbonGallery.ButtonClick

RibbonGallery.Click

RibbonGallery.ItemsLoading

RibbonGroup.DialogLauncherClick

RibbonMenu.ItemsLoading

RibbonSplitButton.Click

RibbonToggleButton.Click

RibbonControlEventHandler

프로그래밍 방식으로 리본 구성 요소의 위치 설정

리본 그룹, 탭 또는 컨트롤의 위치를 설정하는 코드를 수정해야 합니다..NET Framework 3.5를 대상으로 하는 프로젝트에서는 정적 Microsoft.Office.Tools.Ribbon.RibbonPosition 클래스의 AfterOfficeIdBeforeOfficeId 메서드를 사용하여 그룹, 탭 또는 컨트롤의 Position 속성을 할당할 수 있습니다.대상으로 하는 프로젝트는 .NET Framework 4 또는 .NET Framework 4.5를 사용 하 여 이러한 메서드에 액세스 해야는 RibbonPosition 속성에서 제공 되는 RibbonFactory 개체.

다음과 같은 두 가지 방법으로 RibbonFactory 개체에 액세스할 수 있습니다.

  • 리본 클래스의 Factory 속성을 사용합니다.리본 클래스 내부의 코드에서 이 방법을 사용합니다.

  • Globals.Factory.GetRibbonFactory 메서드를 사용합니다.리본 클래스 외부의 코드에서 이 방법을 사용합니다.Globals 클래스에 대한 자세한 내용은 Office 프로젝트의 개체에 전역 액세스를 참조하십시오.

다음 코드 예제에서는 .NET Framework 3.5를 대상으로 하는 프로젝트의 리본 클래스에 있는 탭의 Position 속성을 설정하는 방법을 보여 줍니다.

Me.tab1.Position = RibbonPosition.AfterOfficeId("TabHome")
this.tab1.Position = RibbonPosition.AfterOfficeId("TabHome");

다음 코드 예제에서는 .NET Framework 4를 대상으로 하는 프로젝트에서의 동일한 작업을 보여 줍니다.

Me.tab1.Position = Me.Factory.RibbonPosition.AfterOfficeId("TabHome")
this.tab1.Position = this.Factory.RibbonPosition.AfterOfficeId("TabHome");

참고 항목

개념

.NET Framework 4 또는 .NET Framework 4.5로 Office 솔루션 마이그레이션

리본 디자이너