Aktualizace vlastních nastavení pásu karet v projektech Office při migraci na rozhraní .NET Framework 4 nebo .NET Framework 4.5
Pokud váš projekt obsahuje vlastní nastavení pásu karet, který byl vytvořen pomocí pásu karet (vizuální návrhář) položku projektu, projekt kódu musí proveďte následující změny, pokud ke změně cílové rozhraní .NET Framework 4 nebo .NET Framework 4.5:
Upravte kód generovaný pásu karet.
Upravte jakýkoli kód, který vytvoří ovládací prvky pásu karet za běhu, zpracovává události pásu karet nebo programově nastaví pozici součást pásu karet.
Aktualizace kódu vygenerovaný pásu karet
Pokud je cílové rozhraní projektu změněny na .NET Framework 4 nebo .NET Framework 4.5, generovaný kód pro položku pásu karet je nutné změnit provedením následujících kroků.Soubory kódu, které je třeba aktualizovat závisí na programovacím jazykem a vytvoření projektu:
Projekty jazyka Visual Basic nebo Visual C# projekty, které jste vytvořili v obou Visual Studio 2012 nebo Visual Studio 2010 provést všechny kroky uvedené v souboru kódu na pozadí pásu karet (YourRibbonItem.Designer.cs nebo YourRibbonItem.Designer.vb).Soubor s kódem v projekty Visual Basic zobrazíte klepnutím Zobrazit všechny soubory tlačítka v Průzkumníku.
V aplikaci Visual C# projekty, které jste vytvořili v aplikaci Visual Studio 2008 a potom provedli inovaci na Visual Studio 2012, prvních dvou kroků ve zdrojovém souboru pásu karet (YourRibbonItem.cs nebo YourRibbonItem.vb) a proveďte zbývající kroky v souboru kódu na pozadí pásu karet.
Chcete-li změnit generovaný kód pásu karet
Změňte deklaraci třídy pásu karet tak, aby je odvozen z Microsoft.Office.Tools.Ribbon.RibbonBase namísto Microsoft.Office.Tools.Ribbon.OfficeRibbon.
Upravte konstruktor třídy pásu karet, jak je ukázáno níže.Pokud přidáte libovolný vlastní kód konstruktoru, neměňte kód.V projektech Visual Basic změňte pouze konstruktor bez parametrů.Ignorujte jiné konstruktoru.
Následující příklad kódu ukazuje výchozí konstruktor třídy pásu karet v projektu, který je cílen na rozhraní.NET Framework 3.5.
Public Sub New() MyBase.New() InitializeComponent() End Sub
public Ribbon1() { InitializeComponent(); }
Následující příklad kódu ukazuje výchozí konstruktor třídy pásu karet v projektu který se zaměřuje .NET Framework 4 nebo .NET Framework 4.5.
Public Sub New() MyBase.New(Globals.Factory.GetRibbonFactory()) InitializeComponent() End Sub
public Ribbon1() : base(Globals.Factory.GetRibbonFactory()) { InitializeComponent(); }
V InitializeComponent metoda, upravit kód, který vytváří ovládací prvek pás karet tak, aby kód místo toho používá jednu z metod pomocníka RibbonFactory objektu.
[!POZNÁMKA]
V jazyce Visual C# projekty, musí rozšířit oblast, která se nazývá Component Designer generated code Chcete-li zobrazit InitializeComponent metoda.
Předpokládejme například, že soubor obsahuje následující řádek kódu, který RibbonButton s názvem button1 v projektu, který je cílen na rozhraní.NET Framework 3.5.
Me.button1 = New Microsoft.Office.Tools.Ribbon.RibbonButton()
this.button1 = new Microsoft.Office.Tools.Ribbon.RibbonButton();
V projektu, který se zaměřuje .NET Framework 4 nebo .NET Framework 4.5, místo toho je nutné použít následující kód.
Me.button1 = Me.Factory.CreateRibbonButton()
this.button1 = this.Factory.CreateRibbonButton();
Úplný seznam pomocné metody pro ovládací prvky pásu karet, viz Konkretizaci ovládací prvky pásu karet.
V jazyce Visual C# projekty, upravit každý řádek kódu v InitializeComponent metoda, která používá EventHandler<TEventArgs> delegáta místo ní použít určitý delegát pásu karet.
Předpokládejme například, že soubor obsahuje následující řádek kódu, který zpracovává RibbonButton.Click události v projektu, který je cílen na rozhraní.NET Framework 3.5.
this.button1.Click += new System.EventHandler<Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs>( this.button1_Click);
V projektu, který se zaměřuje .NET Framework 4 nebo .NET Framework 4.5, místo toho je nutné použít následující kód.
this.button1.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler( this.button1_Click);
Úplný seznam delegátů pásu karet naleznete v tématu Zpracování události pásu karet.
V projektu jazyka Visual Basic, vyhledejte ThisRibbonCollection třídu na konec souboru.Upravte prohlášení této třídy, tak, aby již dědí z Microsoft.Office.Tools.Ribbon.RibbonReadOnlyCollection.
Vytvoření instance ovládací prvky pásu karet
Je třeba upravit jakýkoli kód, který dynamicky vytvoří ovládací prvky pásu karet.V projektech cílených na rozhraní.NET Framework 3.5, ovládací prvky pásu karet jsou třídy, které můžete vytvořit instanci přímo v určitých situacích.V projektech cílených .NET Framework 4 nebo .NET Framework 4.5, jsou tyto ovládací prvky rozhraní, které nemůže přímo vytvořit.Je nutné vytvořit ovládací prvky pomocí metod, které jsou poskytovány RibbonFactory objektu.
Existují dva způsoby, jak získat přístup RibbonFactory objekt:
Při použití Factory vlastnost třídy pásu karet.Použijte tento přístup z kódu ve vaší třídě pásu karet.
Při použití Globals.Factory.GetRibbonFactory metoda.Použijte tento přístup z kódu mimo danou třídu pásu karet.Další informace týkající Globals třídy naleznete v tématu Globální přístup k objektům v projektech Office.
Následující příklad kódu ukazuje, jak vytvořit RibbonButton v pásu karet třídy v projektu, který se zaměřuje .NET Framework 4 nebo .NET Framework 4.5.
Dim button As Microsoft.Office.Tools.Ribbon.RibbonButton =
Me.Factory.CreateRibbonButton()
Microsoft.Office.Tools.Ribbon.RibbonButton button =
this.Factory.CreateRibbonButton();
V následující tabulce jsou uvedeny ovládací prvky, můžete programově vytvořit a metody sloužící k vytvoření ovládacích prvků v projektech cílených .NET Framework 4 nebo .NET Framework 4.5.
Ovládací prvek |
Metoda RibbonFactory v .NET Framework 4 a .NET Framework 4.5 projekty |
---|---|
Zpracování událostí pásu karet
Je třeba upravit jakýkoli kód, který zpracovává události ovládací prvky pásu karet.V projektech cílených na rozhraní.NET Framework 3.5, tyto události jsou zpracovány podle obecného EventHandler<TEventArgs> delegovat.V projektech cílených .NET Framework 4 nebo .NET Framework 4.5, ostatní delegáti nyní zpracovává tyto události.
Následující tabulka uvádí pásu karet události a delegáti, které jsou spojeny s nimi v projektech cílených .NET Framework 4 nebo .NET Framework 4.5.
Událost |
Delegát pro použití v .NET Framework 4 a .NET Framework 4.5 projekty |
---|---|
LoadImageudálosti generované třídy pásu karet |
|
RibbonDropDown.SelectionChanged |
Programové nastavení pozice komponenty pásu karet
Je třeba upravit jakýkoli kód, který nastaví pozici skupiny pásu karet, karet nebo ovládacích prvků.V projektech cílených na rozhraní.NET Framework 3.5, můžete použít AfterOfficeId a BeforeOfficeId metody statické Microsoft.Office.Tools.Ribbon.RibbonPosition třídy přiřazení Position vlastnost skupiny, karta nebo ovládacího prvku.V projektech cílených .NET Framework 4 nebo .NET Framework 4.5, tyto metody musí přistupovat pomocí RibbonPosition vlastnost poskytované RibbonFactory objektu.
Existují dva způsoby, jak získat přístup RibbonFactory objekt:
Při použití Factory vlastnost třídy pásu karet.Použijte tento přístup z kódu ve vaší třídě pásu karet.
Při použití Globals.Factory.GetRibbonFactory metoda.Použijte tento přístup z kódu mimo danou třídu pásu karet.Další informace týkající Globals třídy naleznete v tématu Globální přístup k objektům v projektech Office.
Následující příklad kódu ukazuje, jak nastavit Position vlastnost na kartě v pásu karet třídy v projektu, který je cílen na rozhraní.NET Framework 3.5.
Me.tab1.Position = RibbonPosition.AfterOfficeId("TabHome")
this.tab1.Position = RibbonPosition.AfterOfficeId("TabHome");
Následující příklad kódu ukazuje stejný úkol v projektu, který se zaměřuje .NET Framework 4.
Me.tab1.Position = Me.Factory.RibbonPosition.AfterOfficeId("TabHome")
this.tab1.Position = this.Factory.RibbonPosition.AfterOfficeId("TabHome");
Viz také
Koncepty
Migrace řešení Office na rozhraní .NET Framework 4 nebo .NET Framework 4.5