Partager via


Mise à jour des personnalisations de ruban dans les projets Office qui font l'objet d'une migration vers .NET Framework 4 ou .NET Framework 4.5

Si votre projet contient une personnalisation de ruban créée à l'aide de l'élément de projet de Ruban (Concepteur visuel), vous devez apporter les modifications suivantes à votre code de projet si la version cible du. Net Framework est modifiée à .NET Framework 4 ou à .NET Framework 4.5:

  • Modifiez le code généré du ruban.

  • Modifiez tout code qui instancie des contrôles du ruban pendant l'exécution, gère des événements du ruban ou définit par programmation la position d'un composant de ruban.

Mise à jour du code généré du ruban

Si la version cible du. Net Framework de votre projet est modifiée à .NET Framework 4 ou à .NET Framework 4.5, vous devez modifier le code généré pour l'élément ruban en exécutant les étapes suivantes.Les fichiers de code que vous devez mettre à jour dépendent du langage de programmation et de la manière dont vous avez créé le projet :

  • Dans les projets Visual Basic, ou dans les projets Visual c dans lesquels vous avez créé Visual Studio 2012 ou Visual Studio 2010 effectuent toutes les étapes du fichier code-behind du ruban (YourRibbonItem. Designer.cs ou YourRibbonItem. Designer.vb).Pour afficher le fichier code-behind dans les projets Visual Basic, vous devez cliquer sur le bouton Afficher tous les fichiers de l'Explorateur de solutions.

  • Dans les projets Visual C# que vous avez créés dans Visual Studio 2008 puis avez mis à niveau vers Visual Studio 2012, procédez aux deux premières étapes dans le fichier code du ruban puis procédez aux étapes restantes (VotreElémentRuban.cs ou VotreElémentRuban.vb) dans le fichier code-behind du ruban.

Pour modifier le code généré du ruban

  1. Modifiez la déclaration de la classe du ruban afin qu'elle dérive de Microsoft.Office.Tools.Ribbon.RibbonBase au lieu de Microsoft.Office.Tools.Ribbon.OfficeRibbon.

  2. Modifiez le constructeur de la classe du ruban comme indiqué ci-dessous.Si vous avez ajouté votre propre code au constructeur, ne modifiez pas votre code.Dans les projets Visual Basic, modifiez uniquement le constructeur sans paramètre.Ignorez l'autre constructeur.

    L'exemple de code suivant affiche le constructeur par défaut d'une classe de ruban dans un projet qui cible le .NET Framework 3.5.

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

    L'exemple de code suivant montre le constructeur par défaut d'une classe de ruban dans un projet qui cible .NET Framework 4 ou .NET Framework 4.5.

    Public Sub New()
        MyBase.New(Globals.Factory.GetRibbonFactory())
        InitializeComponent()
    End Sub
    
    public Ribbon1()
        : base(Globals.Factory.GetRibbonFactory())
    {
        InitializeComponent();
    }
    
  3. Dans la méthode InitializeComponent, modifiez tout code qui construit un contrôle de ruban afin que le code utilise à la place l'une des méthodes d'assistance de l'objet RibbonFactory.

    [!REMARQUE]

    Dans les projets Visual C#, vous devez développer la zone nommée Component Designer generated code pour consulter la méthode InitializeComponent.

    Par exemple, supposez que votre fichier contiennent la ligne suivante de code qui instancie un RibbonButton nommé button1 dans un projet qui cible le .NET Framework 3.5.

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

    Dans un projet qui cible .NET Framework 4 ou .NET Framework 4.5, vous devez utiliser à la place le code suivant.

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

    Pour une liste complète des méthodes d'assistance pour les contrôles de ruban, consultez Instanciation des contrôles de ruban.

  4. Dans les projets Visual C#, modifiez toute ligne de code de la méthode InitializeComponent qui utilise un délégué EventHandler<TEventArgs> et utilisez à la place un délégué de ruban spécifique.

    Par exemple, supposez que votre fichier contienne la ligne suivante de code qui gère l'événement RibbonButton.Click dans un projet ciblant le .NET Framework 3.5.

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

    Dans un projet qui cible .NET Framework 4 ou .NET Framework 4.5, vous devez utiliser à la place le code suivant.

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

    Pour une liste complète des délégués du ruban, consultez Gestion des événements de ruban.

  5. Dans les projets Visual Basic, localisez la classe ThisRibbonCollection à la fin du fichier.Modifiez la déclaration de cette classe pour qu'elle n'hérite plus de Microsoft.Office.Tools.Ribbon.RibbonReadOnlyCollection.

Instanciation des contrôles de ruban

Vous devez modifier tout code qui instancie dynamiquement des contrôles de ruban.Dans les projets qui ciblent le .NET Framework 3.5, les contrôles de ruban sont des classes que vous pouvez instancier directement dans certains scénarios.Dans les projets qui ciblent .NET Framework 4 ou .NET Framework 4.5, ces contrôles sont des interfaces que vous ne pouvez pas instancier directement.Vous devez créer des contrôles à l'aide des méthodes fournies par l'objet RibbonFactory.

Il existe deux méthodes pour accéder à l'objet RibbonFactory :

  • En utilisant la propriété Factory de la classe du ruban.Utilisez cette approche depuis le code dans votre classe de ruban.

  • En utilisant la méthode Globals.Factory.GetRibbonFactory.Utilisez cette approche depuis le code en dehors de votre classe de ruban.Pour plus d'informations sur la classe Globals, consultez Accès global aux objets dans les projets Office.

L'exemple de code suivant montre comment créer RibbonButton dans une classe de ruban dans un projet qui cible .NET Framework 4 ou .NET Framework 4.5.

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

Le tableau suivant répertorie les contrôles que vous pouvez créer par programmation et la méthode à utiliser pour créer des contrôles dans les projets qui ciblent .NET Framework 4 ou .NET Framework 4.5.

Contrôle

Méthode de RibbonFactory à utiliser dans .NET Framework 4 et les projets d' .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

Gestion des événements de ruban

Vous devez modifier tout code qui gère des événements de contrôles de ruban.Dans les projets qui ciblent le .NET Framework 3.5, ces événements sont contrôlés par le délégué générique EventHandler<TEventArgs>.Dans les projets qui ciblent .NET Framework 4 ou .NET Framework 4.5, ces événements sont désormais contrôlés par d'autres délégués.

Le tableau suivant répertorie les événements du ruban et les délégués qui leur sont associés dans les projets qui ciblent .NET Framework 4 ou .NET Framework 4.5.

Événement

Délégué à utiliser dans .NET Framework 4 et les projets d' .NET Framework 4.5

Événement LoadImage dans une classe générée du ruban

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

Définition par programmation de la position d'un composant de ruban

Vous devez modifier tout code qui définit la position des groupes, onglets ou contrôles de ruban.Dans les projets qui ciblent le .NET Framework 3.5, vous pouvez utiliser les méthodes AfterOfficeId et BeforeOfficeId de la classe statique Microsoft.Office.Tools.Ribbon.RibbonPosition pour assigner la propriété Position d'un groupe, onglet ou contrôle.Dans les projets qui ciblent .NET Framework 4 ou .NET Framework 4.5, vous devez accéder à ces méthodes à l'aide de la propriété d' RibbonPosition fournie par l'objet d' RibbonFactory .

Il existe deux méthodes pour accéder à l'objet RibbonFactory :

  • En utilisant la propriété Factory de la classe du ruban.Utilisez cette approche depuis le code dans votre classe de ruban.

  • En utilisant la méthode Globals.Factory.GetRibbonFactory.Utilisez cette approche depuis le code en dehors de votre classe de ruban.Pour plus d'informations sur la classe Globals, consultez Accès global aux objets dans les projets Office.

L'exemple de code suivant montre comment définir la propriété Position d'un onglet dans une classe de ruban dans un projet qui cible le .NET Framework 3.5.

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

L'exemple de code suivant montre la même tâche dans un projet qui cible le .NET Framework 4.

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

Voir aussi

Concepts

Migration de solutions Office vers .NET Framework 4 ou .NET Framework 4.5

Concepteur de ruban