Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Om projektet innehåller en menyfliksanpassning som skapades med hjälp av projektobjektet Menyfliksområde (Visual Designer) måste du göra följande ändringar i projektkoden om målramverket ändras till .NET Framework 4 eller senare.
Ändra den genererade bandkoden.
Ändra all kod som instansierar bandkontroller vid körning, hanterar händelser i menyfliksområdet eller anger positionen för en menyflikskomponent programmatiskt.
Uppdatera den genererade bandkoden
Om målramverket för projektet ändras till .NET Framework 4 eller senare måste du ändra den genererade koden för menyfliksobjektet genom att utföra följande steg. Vilka kodfiler du behöver uppdatera beror på programmeringsspråket och hur du skapade projektet:
I Visual Basic-projekt eller i Visual C#-projekt som du skapade i antingen Visual Studio 2012 eller Visual Studio 2010 utför du alla steg i bandkodsfilen (YourRibbonItem. Designer.cs eller YourRibbonItem. Designer.vb). Om du vill se filen bakom koden i Visual Basic-projekt klickar du på knappen Visa alla filer i Solution Explorer.
I Visual C#-projekt som du skapade i Visual Studio 2008 och sedan uppgraderade till Visual Studio 2013 utför du de två första stegen i bandkodsfilen (YourRibbonItem.cs eller YourRibbonItem.vb) och utför de återstående stegen i bandkod bakom filen.
Så här ändrar du den genererade bandkoden
Ändra deklarationen för klassen Ribbon så att den härleds från RibbonBase i stället för
Microsoft.Office.Tools.Ribbon.OfficeRibbon.Ändra konstruktorn för klassen Ribbon enligt nedan. Om du har lagt till någon egen kod i konstruktorn ändrar du inte koden. I Visual Basic-projekt ändrar du endast den parameterlösa konstruktorn. Ignorera den andra konstruktorn.
I följande kodexempel visas standardkonstruktorn för en bandklass i ett projekt som är avsett för .NET Framework 3.5.
I följande kodexempel visas standardkonstruktorn för en bandklass i ett projekt som riktar sig mot .NET Framework 4 eller senare.
InitializeComponentI -metoden ändrar du all kod som konstruerar en menyflikskontroll så att koden i stället använder någon av hjälpmetoderna för RibbonFactory objektet.Anmärkning
I Visual C#-projekt måste du expandera den region som heter
Component Designer generated codeför att seInitializeComponentmetoden.Anta till exempel att filen innehåller följande kodrad som instansierar ett RibbonButton namngivet
button1i ett projekt som riktar sig till .NET Framework 3.5.I ett projekt som riktar sig mot .NET Framework 4 eller senare måste du använda följande kod i stället.
En fullständig lista över hjälpmetoderna för kontrollerna i menyfliksområdet finns i Instansiera kontroller i menyfliksområdet.
I Visual C#-projekt ändrar du valfri kodrad i metoden
InitializeComponentsom använder ett EventHandler<TEventArgs> ombud för att använda ett specifikt menyfliksområdesdelegat i stället.Anta till exempel att filen innehåller följande kodrad som hanterar Click händelsen i ett projekt som riktar sig mot .NET Framework 3.5.
<CodeContentPlaceHolder>8 I ett projekt som riktar sig mot .NET Framework 4 eller senare måste du använda följande kod i stället.
<CodeContentPlaceHolder>9 En fullständig lista över ombuden i menyfliksområdet finns i Hantera händelser i menyfliksområdet.
Leta upp
ThisRibbonCollectionklassen i slutet av filen i Visual Basic-projekt. Ändra deklarationen för den här klassen så att den inte längre ärver frånMicrosoft.Office.Tools.Ribbon.RibbonReadOnlyCollection.
Instansiera kontroller i menyfliksområdet
Du måste ändra all kod som dynamiskt instansierar kontroller i menyfliksområdet. I projekt som riktar sig mot .NET Framework 3.5 är menyflikskontroller klasser som du kan instansiera direkt i vissa scenarier. I projekt som riktar sig mot .NET Framework 4 eller senare är dessa kontroller gränssnitt som du inte kan instansiera direkt. Du måste skapa kontrollerna med hjälp av metoder som tillhandahålls av RibbonFactory objektet.
Det finns två sätt att komma åt objektet RibbonFactory :
Genom att använda egenskapen Factory för klassen Ribbon. Använd den här metoden från kod i klassen Menyfliksområde.
Med hjälp
Globals.Factory.GetRibbonFactoryav metoden . Använd den här metoden från kod utanför klassen Menyfliksområde. Mer information om klassen Globals finns i Global åtkomst till objekt i Office-projekt.Följande kodexempel visar hur du skapar en RibbonButton i en bandklass i ett projekt som riktar sig till .NET Framework 4 eller senare.
<CodeContentPlaceHolder>10 <CodeContentPlaceHolder>11 I följande tabell visas de kontroller som du kan skapa programmatiskt och den metod som ska användas för att skapa kontrollerna i projekt som riktar sig mot .NET Framework 4 eller senare.
Hantera händelser i menyfliksområdet
Du måste ändra all kod som hanterar händelser i menyfliksområdets kontroller. I projekt som riktar sig mot .NET Framework 3.5 hanteras dessa händelser av det allmänna EventHandler<TEventArgs> ombudet. I projekt som riktar sig mot .NET Framework 4 eller senare hanteras dessa händelser nu av andra ombud.
I följande tabell visas händelser i menyfliksområdet och de ombud som är associerade med dem i projekt som riktar sig mot .NET Framework 4 eller senare.
| Evenemang | Delegera att använda i .NET Framework 4- och senare projekt |
|---|---|
| LoadImage händelse i en genererad bandklass | RibbonLoadImageEventHandler |
| Load | RibbonUIEventHandler |
| Click Click ItemsLoading TextChanged ButtonClick ItemsLoading SelectionChanged TextChanged ButtonClick Click ItemsLoading DialogLauncherClick ItemsLoading Click Click |
RibbonControlEventHandler |
Ange positionen för en menyflikskomponent programmatiskt
Du måste ändra valfri kod som anger positionen för menyfliksgrupper, flikar eller kontroller. I projekt som riktar sig mot .NET Framework 3.5 kan du använda AfterOfficeId metoderna och BeforeOfficeId för den statiska Microsoft.Office.Tools.Ribbon.RibbonPosition klassen för att tilldela Position egenskapen för en grupp, flik eller kontroll. I projekt som riktar sig mot .NET Framework 4 eller senare måste du komma åt dessa metoder med hjälp av egenskapen RibbonPosition som tillhandahålls av RibbonFactory objektet.
Det finns två sätt att komma åt objektet RibbonFactory :
Genom att
Factoryanvända egenskapen för klassen Ribbon. Använd den här metoden från kod i klassen Menyfliksområde.Med hjälp
Globals.Factory.GetRibbonFactoryav metoden . Använd den här metoden från kod utanför klassen Menyfliksområde. Mer information om klassen Globals finns i Global åtkomst till objekt i Office-projekt.I följande kodexempel visas hur du anger
Positionegenskapen för en flik i en bandklass i ett projekt som riktar sig till .NET Framework 3.5.
I följande kodexempel visas samma uppgift i ett projekt som riktar sig mot .NET Framework 4.