Mettre à jour les personnalisations du ruban migrées vers .NET Framework 4.5
Si votre projet contient une personnalisation du ruban créée à l’aide de l’élément de projet Ruban (Concepteur visuel), vous devez apporter les modifications suivantes au code de votre projet si le framework cible est remplacé par .NET Framework 4 ou version ultérieure.
Modifiez le code de ruban généré.
Modifiez tout code qui instancie les contrôles du ruban au moment de l’exécution, gère les événements du ruban ou définit la position d’un composant du ruban par programmation.
Mettre à jour le code du ruban généré
Si le framework cible de votre projet est remplacé par .NET Framework 4 ou version ultérieure, vous devez modifier le code généré pour l’élément du ruban en effectuant les étapes suivantes. Vous devez mettre à jour les fichiers de code en fonction du langage de programmation utilisé et de la façon dont vous avez créé le projet :
Dans les projets Visual Basic ou dans les projets Visual C# que vous avez créés dans Visual Studio 2012 ou Visual Studio 2010, effectuez 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, cliquez sur le bouton Afficher tous les fichiers dans Explorateur de solutions.
Dans les projets Visual C# que vous avez créés dans Visual Studio 2008, puis mis à niveau vers Visual Studio 2013, effectuez les deux premières étapes du fichier de code du ruban (YourRibbonItem.cs ou YourRibbonItem.vb), puis effectuez les étapes restantes dans le fichier code-behind du ruban.
Pour changer le code de ruban généré
Modifiez la déclaration de la classe Ribbon pour qu'elle dérive de RibbonBase au lieu de
Microsoft.Office.Tools.Ribbon.OfficeRibbon
.Modifiez le constructeur de la classe Ribbon, 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 montre le constructeur par défaut d'une classe Ribbon dans un projet qui cible .NET Framework 3.5.
L’exemple de code suivant montre le constructeur par défaut d’une classe Ribbon dans un projet qui cible le .NET Framework 4 ou une version ultérieure.
Dans la méthode
InitializeComponent
, modifiez tout code qui construit un contrôle de ruban pour 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 voir la méthodeInitializeComponent
.Par exemple, supposons que votre fichier contienne la ligne de code suivante qui instancie un RibbonButton nommé
button1
dans un projet qui cible .NET Framework 3.5.Dans un projet qui cible .NET Framework 4 ou version ultérieure, vous devez utiliser le code suivant à la place.
Pour obtenir la liste complète des méthodes d’assistance pour les contrôles du ruban, consultez Instancier les contrôles du ruban.
Dans les projets Visual C#, modifiez les lignes de code de la méthode
InitializeComponent
qui utilisent un délégué EventHandler<TEventArgs> pour utiliser un délégué de ruban spécifique à la place.Par exemple, supposons que votre fichier contienne la ligne de code suivante qui gère l'événement Click dans un projet qui cible .NET Framework 3.5.
<CodeContentPlaceHolder>8 Dans un projet qui cible .NET Framework 4 ou version ultérieure, vous devez utiliser le code suivant à la place.
<CodeContentPlaceHolder>9 Pour obtenir la liste complète des délégués du ruban, consultez Gérer les événements du ruban.
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 deMicrosoft.Office.Tools.Ribbon.RibbonReadOnlyCollection
.
Instancier des contrôles du ruban
Vous devez modifier tout code qui instancie dynamiquement des contrôles de ruban. Dans les projets qui ciblent .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 version ultérieure, ces contrôles sont des interfaces que vous ne pouvez pas instancier directement. Vous devez créer les contrôles à l'aide des méthodes fournies par l'objet RibbonFactory.
Il existe deux façons d'accéder à l'objet RibbonFactory :
À l’aide de la propriété Factory de la classe Ribbon. Utilisez cette approche basée sur le code dans votre classe Ribbon.
À l'aide de la méthode
Globals.Factory.GetRibbonFactory
. Utilisez cette approche basée sur le code hors de votre classe Ribbon. Pour plus d’informations sur la classe Globals, consultez Accès global aux objets dans Bureau projets.L’exemple de code suivant montre comment créer une RibbonButton classe de ruban dans un projet qui cible .NET Framework 4 ou version ultérieure.
<CodeContentPlaceHolder>10<CodeContentPlaceHolder>11 Le tableau suivant répertorie les contrôles que vous pouvez créer par programmation et la méthode à utiliser pour créer les contrôles dans les projets qui ciblent .NET Framework 4 ou version ultérieure.
Gérer les événements du ruban
Vous devez modifier tout code qui gère les événements liés aux contrôles de ruban. Dans les projets qui ciblent .NET Framework 3.5, ces événements sont gérés par le délégué EventHandler<TEventArgs> générique. Dans les projets qui ciblent .NET Framework 4 ou version ultérieure, ces événements sont désormais gérés par d’autres délégués.
Le tableau suivant répertorie les événements du ruban et les délégués associés aux projets qui ciblent .NET Framework 4 ou version ultérieure.
Event | Déléguer à utiliser dans .NET Framework 4 et les projets ultérieurs |
---|---|
Événement LoadImage dans une classe Ribbon générée | RibbonLoadImageEventHandler |
Load | RibbonUIEventHandler |
Click Click ItemsLoading TextChanged ButtonClick ItemsLoading SelectionChanged TextChanged ButtonClick Click ItemsLoading DialogLauncherClick ItemsLoading Click Click |
RibbonControlEventHandler |
Définir la position d’un composant ruban par programmation
Vous devez modifier tout code qui définit la position des groupes, onglets ou contrôles de ruban. Dans les projets qui ciblent .NET Framework 3.5, vous pouvez utiliser les méthodes AfterOfficeId
et BeforeOfficeId
de la classe Microsoft.Office.Tools.Ribbon.RibbonPosition
statique pour assigner la propriété Position
d'un groupe, d'un onglet ou d'un contrôle. Dans les projets qui ciblent .NET Framework 4 ou version ultérieure, vous devez accéder à ces méthodes à l’aide de la RibbonPosition propriété fournie par l’objet RibbonFactory .
Il existe deux façons d'accéder à l'objet RibbonFactory :
À l'aide de la propriété
Factory
de la classe Ribbon. Utilisez cette approche basée sur le code dans votre classe Ribbon.À l'aide de la méthode
Globals.Factory.GetRibbonFactory
. Utilisez cette approche basée sur le code hors de votre classe Ribbon. Pour plus d’informations sur la classe Globals, consultez Accès global aux objets dans Bureau projets.L'exemple de code suivant montre comment définir la propriété
Position
d'un onglet dans une classe Ribbon, au sein d'un projet qui cible .NET Framework 3.5.
L’exemple de code suivant illustre la même tâche dans un projet qui cible le .NET Framework 4.