Návod: Zobrazení vlastních podoken úloh s e-mailovými zprávami v Outlooku
Tento názorný postup ukazuje, jak zobrazit jedinečnou instanci vlastního podokna úloh s každou vytvořenou nebo otevřenou e-mailovou zprávou. Uživatelé mohou zobrazit nebo skrýt vlastní podokno úloh pomocí tlačítka na pásu karet každé e-mailové zprávy.
Platí pro: Informace v tomto tématu platí pro projekty doplňků VSTO pro Outlook. Další informace naleznete v tématu Funkce dostupné aplikace Office lication a typu projektu.
Pokud chcete zobrazit vlastní podokno úloh s více okny Průzkumníka nebo inspektoru, musíte vytvořit instanci vlastního podokna úloh pro každé otevřené okno. Další informace o chování vlastních podoken úloh v oknech Outlooku naleznete v tématu Vlastní podokna úloh.
Poznámka:
Tento názorný postup představuje kód doplňku VSTO v malých částech, aby bylo snazší probrat logiku kódu.
Tento návod znázorňuje následující úlohy:
Návrh uživatelského rozhraní vlastního podokna úloh
Vytvoření vlastního uživatelského rozhraní pásu karet
Zobrazení vlastního uživatelského rozhraní pásu karet s e-mailovými zprávami
Vytvoření třídy pro správu oken inspektoru a vlastních podoken úloh
Inicializace a čištění prostředků používaných doplňkem VSTO
Synchronizace přepínacího tlačítka pásu karet s podoknem vlastních úloh
Poznámka:
Váš počítač může v následujících pokynech zobrazovat odlišné názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace naleznete v tématu Přizpůsobení integrovaného vývojového prostředí sady Visual Studio.
Požadavky
K dokončení tohoto návodu budete potřebovat následující komponenty:
Edice Visual Studia, která zahrnuje nástroje Microsoft Office Developer Tools. Další informace najdete v tématu Konfigurace počítače pro vývoj řešení Office.
Microsoft Outlook 2013 nebo Microsoft® Outlook® 2010.
Vytvoření projektu
Vlastní podokna úloh se implementují v doplňcích VSTO. Začněte vytvořením projektu doplňku VSTO pro Outlook.
Vytvoření nového projektu
Vytvořte projekt doplňku aplikace Outlook s názvem OutlookMailItemTaskPane. Použijte šablonu projektu doplňku aplikace Outlook. Další informace naleznete v tématu Postupy: Vytváření projektů Office v sadě Visual Studio.
Visual Studio otevře soubor kódu ThisAddIn.cs nebo ThisAddIn.vb a přidá projekt OutlookMailItemTaskPane do Průzkumník řešení.
Návrh uživatelského rozhraní vlastního podokna úloh
Pro vlastní podokna úloh neexistuje žádný vizuální návrhář, ale uživatelský ovládací prvek můžete navrhnout pomocí požadovaného uživatelského rozhraní. Vlastní podokno úloh v tomto doplňku VSTO má jednoduché uživatelské rozhraní, které obsahuje TextBox ovládací prvek. Později v tomto názorném postupu přidáte uživatelský ovládací prvek do vlastního podokna úloh.
Návrh uživatelského rozhraní vlastního podokna úloh
V Průzkumník řešení klepněte na projekt OutlookMailItemTaskPane.
V nabídce Projekt klepněte na tlačítko Přidat uživatelský ovládací prvek.
V dialogovém okně Přidat novou položku změňte název uživatelského ovládacího prvku na TaskPaneControl a klepněte na tlačítko Přidat.
Uživatelský ovládací prvek se otevře v návrháři.
Na kartě Běžné ovládací prvky panelu nástrojů přetáhněte ovládací prvek TextBox do uživatelského ovládacího prvku.
Návrh uživatelského rozhraní pásu karet
Jedním z cílů tohoto doplňku VSTO je poskytnout uživatelům způsob, jak skrýt nebo zobrazit vlastní podokno úloh z pásu karet jednotlivých e-mailových zpráv. Pokud chcete poskytnout uživatelské rozhraní, vytvořte vlastní uživatelské rozhraní pásu karet, které zobrazí přepínací tlačítko, na které můžou uživatelé kliknout a zobrazit nebo skrýt vlastní podokno úloh.
Vytvoření vlastního uživatelského rozhraní pásu karet
V nabídce Projekt klepněte na tlačítko Přidat novou položku.
V dialogovém okně Přidat novou položku vyberte pás karet (Vizuální návrhář).
Změňte název nového pásu karet na ManageTaskPaneRibbon a klikněte na Přidat.
Soubor ManageTaskPaneRibbon.cs nebo ManageTaskPaneRibbon.vb se otevře v Návrháři pásu karet a zobrazí výchozí kartu a skupinu.
V Návrháři pásu karet klikněte na skupinu 1.
V okně Vlastnosti nastavte vlastnost Popisek na Správce podokna úloh.
Na kartě Ovládací prvky pásu karet Office na panelu nástrojů přetáhněte ovládací prvek ToggleButton do skupiny Správce podokna úloh.
Klikněte na přepínací tlačítko1.
V okně Vlastnosti nastavte vlastnost Popisek na Zobrazit podokno úloh.
Zobrazení vlastního uživatelského rozhraní pásu karet s e-mailovými zprávami
Vlastní podokno úloh, které vytvoříte v tomto názorném postupu, je navržené tak, aby se zobrazovala pouze v oknech inspektoru, která obsahují e-mailové zprávy. Proto nastavte vlastnosti tak, aby zobrazovaly vlastní uživatelské rozhraní pásu karet pouze s těmito okny.
Zobrazení vlastního uživatelského rozhraní pásu karet pomocí e-mailových zpráv
V Návrháři pásu karet klikněte na pás karet ManageTaskPaneRibbon Pás karet.
V okně Vlastnosti klikněte na rozevírací seznam vedle ribbonType a vyberte Microsoft.Outlook.Mail.Compose a Microsoft.Outlook.Mail.Read.
Vytvoření třídy pro správu oken inspektoru a vlastních podoken úloh
Existuje několik případů, kdy doplněk VSTO musí určit, které vlastní podokno úloh je přidruženo ke konkrétní e-mailové zprávě. Mezi tyto případy patří:
Když uživatel zavře e-mailovou zprávu. V takovém případě musí doplněk VSTO odebrat odpovídající vlastní podokno úloh, aby se zajistilo správné vyčištění prostředků používaných doplňkem VSTO.
Když uživatel zavře vlastní podokno úloh. V takovém případě musí doplněk VSTO aktualizovat stav přepínacího tlačítka na pásu karet e-mailové zprávy.
Když uživatel klikne na přepínací tlačítko na pásu karet. V takovém případě musí doplněk VSTO skrýt nebo zobrazit odpovídající podokno úloh.
Pokud chcete doplněk VSTO povolit, aby bylo možné sledovat, které vlastní podokno úloh je přidružené ke každé otevřené e-mailové zprávě, vytvořte vlastní třídu, která zabalí páry Inspector a CustomTaskPane objekty. Tato třída vytvoří nový vlastní objekt podokna úloh pro každou e-mailovou zprávu a odstraní vlastní podokno úloh při zavření odpovídající e-mailové zprávy.
Vytvoření třídy pro správu oken inspektoru a vlastních podoken úloh
V Průzkumník řešení klepněte pravým tlačítkem myši ThisAddIn.cs nebo ThisAddIn.vb soubor a potom klepněte na tlačítko Zobrazit kód.
Na začátek souboru přidejte následující příkazy.
Přidejte následující kód do souboru ThisAddIn.cs nebo ThisAddIn.vb mimo
ThisAddIn
třídu (pro Visual C#, přidejte tento kód doOutlookMailItemTaskPane
oboru názvů). TřídaInspectorWrapper
spravuje dvojici Inspector a CustomTaskPane objekty. Definici této třídy dokončíte v následujících krocích.Za kód, který jste přidali v předchozím kroku, přidejte následující konstruktor. Tento konstruktor vytvoří a inicializuje nové vlastní podokno úloh přidružené k objektu Inspector , který je předán. V jazyce C# konstruktor také připojí obslužné rutiny událostí k Close události objektu Inspector a k VisibleChanged události objektu CustomTaskPane .
public InspectorWrapper(Outlook.Inspector Inspector) { inspector = Inspector; ((Outlook.InspectorEvents_Event)inspector).Close += new Outlook.InspectorEvents_CloseEventHandler(InspectorWrapper_Close); taskPane = Globals.ThisAddIn.CustomTaskPanes.Add( new TaskPaneControl(), "My task pane", inspector); taskPane.VisibleChanged += new EventHandler(TaskPane_VisibleChanged); }
Za kód, který jste přidali v předchozím kroku, přidejte následující metodu. Tato metoda je obslužná rutina události pro VisibleChanged událost objektu CustomTaskPane , který je obsažen ve
InspectorWrapper
třídě. Tento kód aktualizuje stav přepínacího tlačítka při každém otevření nebo zavření vlastního podokna úloh.Za kód, který jste přidali v předchozím kroku, přidejte následující metodu. Tato metoda je obslužná rutina události pro Close událost objektu Inspector , který obsahuje aktuální e-mailovou zprávu. Obslužná rutina události uvolní prostředky při zavření e-mailové zprávy. Obslužná rutina události také odebere aktuální vlastní podokno úloh z
CustomTaskPanes
kolekce. To pomáhá zabránit více instancím vlastního podokna úloh při otevření další e-mailové zprávy.void InspectorWrapper_Close() { if (taskPane != null) { Globals.ThisAddIn.CustomTaskPanes.Remove(taskPane); } taskPane = null; Globals.ThisAddIn.InspectorWrappers.Remove(inspector); ((Outlook.InspectorEvents_Event)inspector).Close -= new Outlook.InspectorEvents_CloseEventHandler(InspectorWrapper_Close); inspector = null; }
Za kód, který jste přidali v předchozím kroku, přidejte následující kód. Později v tomto názorném postupu zavoláte tuto vlastnost z metody ve vlastním uživatelském rozhraní pásu karet k zobrazení nebo skrytí vlastního podokna úloh.
Inicializace a vyčištění prostředků používaných doplňkem
Přidejte do třídy kód ThisAddIn
pro inicializaci doplňku VSTO při jeho načtení a vyčištění prostředků používaných doplňkem VSTO při jeho uvolnění. Doplněk VSTO inicializujete nastavením obslužné rutiny události události NewInspector a předáním všech existujících e-mailových zpráv této obslužné rutině události. Když je doplněk VSTO uvolněn, odpojte obslužnou rutinu události a vyčistěte objekty používané doplňkem VSTO.
Inicializace a vyčištění prostředků používaných doplňkem VSTO
V souboru ThisAddIn.cs nebo ThisAddIn.vb vyhledejte definici
ThisAddIn
třídy.Do třídy přidejte následující deklarace
ThisAddIn
:Pole
inspectorWrappersValue
obsahuje všechny InspectorInspectorWrapper
objekty spravované doplňkem VSTO.Pole
inspectors
udržuje odkaz na kolekci oken inspektoru v aktuální instanci Outlooku. Tento odkaz brání uvolňování paměti, která obsahuje obslužnou rutinu události události NewInspector , kterou deklarujete v dalším kroku.
Nahraďte metodu
ThisAddIn_Startup
následujícím kódem. Tento kód připojí obslužnou rutinu NewInspector události k události a předá všechny existující Inspector objekty obslužné rutině události. Pokud uživatel načte doplněk VSTO po spuštění Outlooku, použije doplněk VSTO tyto informace k vytvoření vlastních podoken úloh pro všechny e-mailové zprávy, které už jsou otevřené.private void ThisAddIn_Startup(object sender, System.EventArgs e) { inspectors = this.Application.Inspectors; inspectors.NewInspector += new Outlook.InspectorsEvents_NewInspectorEventHandler( Inspectors_NewInspector); foreach (Outlook.Inspector inspector in inspectors) { Inspectors_NewInspector(inspector); } }
Nahraďte metodu
ThisAddIn_ShutDown
následujícím kódem. Tento kód odpojí obslužnou rutinu NewInspector události a vyčistí objekty používané doplňkem VSTO.Do třídy přidejte následující NewInspector obslužnou rutinu
ThisAddIn
události. Pokud nový Inspector obsahuje e-mailovou zprávu, vytvoří metoda instanci novéhoInspectorWrapper
objektu pro správu relace mezi e-mailovou zprávou a odpovídajícím podoknem úloh.Do třídy přidejte následující vlastnost
ThisAddIn
. Tato vlastnost zveřejňuje soukroméinspectorWrappersValue
pole pro kód mimoThisAddIn
třídu.
CheckPoint
Sestavte projekt, abyste zajistili, že se kompiluje bez chyb.
Sestavení projektu
- V Průzkumník řešení klepněte pravým tlačítkem myši na projekt OutlookMailItemTaskPane a potom klepněte na tlačítko Sestavit. Ověřte, že se projekt zkompiluje bez chyb.
Synchronizovat přepínací tlačítko pásu karet s vlastním podoknem úloh
Tlačítko přepínacího tlačítka se zobrazí, když je podokno úloh viditelné, a při skrytí podokna úloh se zobrazí, že se nestiskne. Chcete-li synchronizovat stav tlačítka s vlastním podoknem úloh, upravte Click obslužnou rutinu události přepínacího tlačítka.
Synchronizace vlastního podokna úloh pomocí přepínacího tlačítka
V Návrháři pásu karet poklikejte na přepínací tlačítko Zobrazit podokno úloh.
Visual Studio automaticky vygeneruje obslužnou rutinu události s názvem
toggleButton1_Click
, která zpracovává Click událost přepínacího tlačítka. Visual Studio také otevře soubor ManageTaskPaneRibbon.cs nebo ManageTaskPaneRibbon.vb v Editoru kódu.Na začátek souboru ManageTaskPaneRibbon.cs nebo ManageTaskPaneRibbon.vb přidejte následující příkazy.
Obslužnou rutinu
toggleButton1_Click
události nahraďte následujícím kódem. Když uživatel klikne na přepínací tlačítko, tato metoda skryje nebo zobrazí vlastní podokno úloh přidružené k aktuálnímu okně inspektoru.private void toggleButton1_Click(object sender, RibbonControlEventArgs e) { Outlook.Inspector inspector = (Outlook.Inspector)e.Control.Context; InspectorWrapper inspectorWrapper = Globals.ThisAddIn.InspectorWrappers[inspector]; CustomTaskPane taskPane = inspectorWrapper.CustomTaskPane; if (taskPane != null) { taskPane.Visible = ((RibbonToggleButton)sender).Checked; } }
Testování projektu
Když spustíte ladění projektu, outlook se otevře a načte se doplněk VSTO. Doplněk VSTO zobrazí jedinečnou instanci vlastního podokna úloh s každou otevřenou e-mailovou zprávou. Vytvořte několik nových e-mailových zpráv pro otestování kódu.
Otestování doplňku VSTO
Stiskněte klávesu F5.
V Outlooku klikněte na Nový a vytvořte novou e-mailovou zprávu.
Na pásu karet e-mailové zprávy klikněte na kartu Doplňky a potom klikněte na tlačítko Zobrazit podokno úloh.
Ověřte, že se v e-mailové zprávě zobrazí podokno úloh s názvem Moje podokno úloh.
V podokně úloh zadejte do textového pole první podokno úloh.
Zavře podokno úkolu.
Ověřte, že se změní stav tlačítka Zobrazit podokno úloh, aby se už nestiskl.
Znovu klikněte na tlačítko Zobrazit podokno úloh.
Ověřte, že se otevře podokno úloh a že textové pole stále obsahuje podokno úloh První řetězec.
V Outlooku klikněte na Nový a vytvořte druhou e-mailovou zprávu.
Na pásu karet e-mailové zprávy klikněte na kartu Doplňky a potom klikněte na tlačítko Zobrazit podokno úloh.
Ověřte, že se v e-mailové zprávě zobrazí podokno úloh s názvem Moje podokno úloh a textové pole v tomto podokně úloh je prázdné.
V podokně úloh zadejte do textového pole druhé podokno úloh.
Změňte fokus na první e-mailovou zprávu.
Ověřte, že podokno úloh přidružené k této e-mailové zprávě stále zobrazuje podokno úloh První v textovém poli.
Tento doplněk VSTO také zpracovává pokročilejší scénáře, které můžete vyzkoušet. Chování můžete například otestovat při prohlížení e-mailů pomocí tlačítek Další položka a Předchozí položka . Chování můžete také otestovat při uvolnění doplňku VSTO, otevření několika e-mailových zpráv a opětovné načtení doplňku VSTO.
Další kroky
Další informace o vytváření vlastních podoken úloh najdete v těchto tématech:
Vytvořte vlastní podokno úloh v doplňku VSTO pro jinou aplikaci. Další informace o aplikacích, které podporují vlastní podokna úloh, naleznete v tématu Vlastní podokna úloh.
Automatizace systém Microsoft Office aplikace pomocí vlastního podokna úloh Další informace naleznete v tématu Návod: Automatizace aplikace z vlastního podokna úloh.
Vytvořte tlačítko pásu karet v Excelu, které lze použít ke skrytí nebo zobrazení vlastního podokna úloh. Další informace naleznete v tématu Návod: Synchronizace vlastního podokna úloh s tlačítkem pásu karet.