Názorný postup: Zobrazení podokna úloh vlastní s e-mailové zprávy v aplikaci Outlook
Tento návod ukazuje, jak zobrazit jedinečné instance vlastní podokno úloh se každý e-mail, který je vytvořen nebo otevřít.Uživatelům můžete 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 se vztahují na projekty na úrovni aplikace v aplikacích Outlook 2013 a Outlook 2010. Další informace naleznete v tématu Funkce aplikace Office a typ projektu.
Zobrazení vlastního podokno úloh systému windows více Průzkumník nebo inspektor, je nutné vytvořit instanci vlastního podokno úloh pro každé okno otevřené.Další informace o chování vlastní podokna úloh v aplikaci Outlook, windows, viz Vlastní podokna úloh.
[!POZNÁMKA]
Tento návod představuje kód v malých oddílech usnadnit diskutovat o logice kód.
Tento návod ilustruje následující úkoly:
Návrh uživatelského rozhraní (UI) pro vlastní podokno ú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é zprávy.
Vytvoření třídy pro správu systému windows inspektor a vlastní podokna úloh.
Inicializace a vyčištění prostředků používaných v.
Pás karet přepínací tlačítko synchronizace s vlastní podokno úloh.
[!POZNÁMKA]
Váš počítač může zobrazit jiné názvy nebo umístění pro některé prvky uživatelského rozhraní sady Visual Studio v následujících pokynech.Tyto prvky jsou určeny verzí aplikace Visual Studio a použitým nastavením.Další informace naleznete v tématu Nastavení aplikace Visual Studio.
Požadavky
Chcete-li dokončit tento návod, potřebujete následující komponenty:
-
Edice sady Visual Studio 2012, která zahrnuje nástroje Microsoft Office Developer Tools. Další informace naleznete v tématu [Konfigurace počítače vyvinout řešení Office](bb398242\(v=vs.110\).md).
- Microsoft Outlook 2013 nebo Microsoft Outlook 2010.
Související video ukázku naleznete v tématu Jak provést i pomocí podokna úloh v aplikaci Outlook?.
Vytváření projektu
Vlastní podokna úloh jsou implementovány v doplňky úrovni aplikace.Začněte vytvořením projektu doplněk pro aplikaci Outlook.
Vytvoření nového projektu
Vytvoření doplněk Outlook projekt s názvem OutlookMailItemTaskPane.Použití doplněk Outlook šablony projektu.Další informace naleznete v tématu Jak: vytvoření Office projekty v aplikaci Visual Studio.
Visual StudioOtevře ThisAddIn.cs nebo ThisAddIn.vb soubor kódu a přidá OutlookMailItemTaskPane projektu Průzkumníku.
Návrh uživatelského rozhraní vlastní podokno úloh
Neexistuje žádný vizuální návrhář pro vlastní podokna úloh, ale můžete navrhnout uživatelského ovládacího prvku uživatelského rozhraní, které chcete.Má vlastní podokno úloh v tomto doplňku jednoduchého uživatelského rozhraní, který obsahuje TextBox řízení.Dále v tomto návodu přidáte uživatelský ovládací prvek vlastní podokno úloh.
Návrh uživatelského rozhraní pro vlastní podokno úloh
V Průzkumníku, klepněte OutlookMailItemTaskPane projektu.
Na projektu nabídky, klepněte na Přidat uživatelský ovládací prvek.
V Přidat novou položku dialogovém okně změnit název uživatelského ovládacího prvku TaskPaneControla klepněte na tlačítko Přidat.
Uživatelský ovládací prvek se otevře v návrháři.
Z Běžné ovládací prvky kartě nástrojů, přetáhněte TextBox řízení uživatelského ovládacího prvku.
Návrh uživatelského rozhraní pásu karet
Jedním z cílů pro tento doplněk je poskytnout uživatelům způsob, jak skrýt nebo zobrazit vlastní podokno úloh z pásu karet každé e-mailové zprávy.Poskytnout uživatelské rozhraní, můžete vytvořte vlastní uživatelské rozhraní pásu karet, zobrazující přepínací tlačítko, které mohou uživatelé klepnout a zobrazit nebo skrýt vlastní podokno úloh.
Chcete-li vytvořit vlastní uživatelské rozhraní pásu karet
V nabídce Projekt klikněte na příkaz Přidat novou položku.
V Přidat novou položku dialogovém pásu karet (vizuální návrhář).
Změňte název nové pásu karet na ManageTaskPaneRibbona na Přidat.
ManageTaskPaneRibbon.cs nebo ManageTaskPaneRibbon.vb soubor se otevře v Návrháři pásu karet a zobrazí výchozí kartu a skupiny.
Návrhář pásu karet klepněte na tlačítko skupina1.
V Vlastnosti okno, nastavit štítek vlastnost do Správce podokna úloh.
Z Ovládací prvky pásu karet Office kartě nástrojů, přetáhněte na ovládací prvek "přepínací tlačítko" Správce podokna úloh skupiny.
Klepněte na toggleButton1.
V Vlastnosti okno, nastavit štítek vlastnost zobrazit podokna úloh.
Zobrazit vlastní uživatelské rozhraní pásu karet s e-mailové zprávy
Vlastní podokno úloh, který vytvoříte v tomto návodu je navržena tak, že zobrazí pouze s windows inspektor obsahující e-mailové zprávy.Proto nastavte vlastnosti zobrazení vlastního uživatelského rozhraní pásu karet pouze u těchto oken.
Chcete-li zobrazit vlastní uživatelské rozhraní pásu karet s e-mailové zprávy
V Návrháři pásu karet klepněte ManageTaskPaneRibbon pásu.
V Vlastnosti okno, klepněte na rozevírací seznam vedle RibbonTypea vyberte Microsoft.Outlook.Mail.Compose a Microsoft.Outlook.Mail.Read.
Vytvoření třídy Windows inspektor a vlastní podokna úloh Správa
Existuje několik případů, ve kterých doplněk musí identifikovat vlastní podokno úloh, který je spojen s konkrétní e-mailové zprávy.Tyto případy patří:
Když uživatel zavře e-mailové zprávy.V tomto případě doplněk třeba odebrat odpovídající vlastní podokno úloh zajistit, že jsou správně vyčištěna prostředky používané v.
Když uživatel zavře vlastní podokno úloh.V tomto případě doplněk musí aktualizovat stav přepínací tlačítko na pásu karet e-mailové zprávy.
Když uživatel klepne na tlačítko Přepnout na pásu karet.V tomto případě-v musí skrýt nebo zobrazit odpovídající podokno úloh.
Povolit doplněk ke sledování vlastní podokno úloh, který je přidružen každé otevřené e-mailové zprávy, vytvořit vlastní třídu, která obaluje páry Inspector a CustomTaskPane objekty.Tato třída vytváří nový objekt vlastní podokno úloh pro každou e-mailovou zprávu a odstraní vlastní podokno úloh, při uzavření odpovídající e-mailové zprávy.
Vytvoření třídy pro správu systému windows inspektor a vlastní podokna úloh
V Průzkumníku, klepněte pravým tlačítkem myši ThisAddIn.cs nebo ThisAddIn.vb soubor a klepněte na tlačítko Zobrazení kódu.
Na začátek souboru přidejte následující příkazy.
Imports System.Collections.Generic Imports Microsoft.Office.Tools Imports Office = Microsoft.Office.Core Imports Outlook = Microsoft.Office.Interop.Outlook
using Microsoft.Office.Tools;
Přidejte následující kód ThisAddIn.cs nebo ThisAddIn.vb mimo soubor ThisAddIn třídy (Visual C# přidejte tento kód do OutlookMailItemTaskPane oboru názvů).InspectorWrapper Třída spravuje dvojici Inspector a CustomTaskPane objekty.Bude dokončena definice této třídy v následujících krocích.
Public Class InspectorWrapper Private inspector As Outlook.Inspector Private WithEvents inspectorEvents As Outlook.InspectorEvents_Event Private WithEvents taskPane As CustomTaskPane
public class InspectorWrapper { private Outlook.Inspector inspector; private CustomTaskPane taskPane;
Po kódu, který jste přidali v předchozím kroku, přidejte následující konstruktor.Tento konstruktor vytvoří a inicializuje nový vlastní podokno úloh, který je spojen s Inspector objekt, který je předán.V jazyce C# konstruktor připojí také obslužné rutiny událostí k Close události Inspector objektu a VisibleChanged události CustomTaskPane objektu.
Public Sub New(ByVal Inspector As Outlook.Inspector) Me.inspector = Inspector inspectorEvents = TryCast(Me.inspector, Outlook.InspectorEvents_Event) taskPane = Globals.ThisAddIn.CustomTaskPanes.Add(New TaskPaneControl(), _ "My task pane", Inspector) End Sub
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); }
Po kódu, který jste přidali v předchozím kroku, přidejte následující metodu.Tato metoda obslužné rutiny události je VisibleChanged události CustomTaskPane objekt, který je součástí InspectorWrapper třídy.Tento kód aktualizuje stav přepínací tlačítko vždy, když uživatel otevře nebo zavře vlastní podokno úloh.
Private Sub TaskPane_VisibleChanged(ByVal sender As Object, ByVal e As EventArgs) _ Handles taskPane.VisibleChanged Globals.Ribbons(inspector).ManageTaskPaneRibbon.ToggleButton1.Checked = taskPane.Visible End Sub
void TaskPane_VisibleChanged(object sender, EventArgs e) { Globals.Ribbons[inspector].ManageTaskPaneRibbon.toggleButton1.Checked = taskPane.Visible; }
Po kódu, který jste přidali v předchozím kroku, přidejte následující metodu.Tato metoda obslužné rutiny události je Close události Inspector objekt, který obsahuje aktuální e-mailové zprávy.Obslužná rutina události uvolní prostředky při zavření e-mailové zprávy.Odebere obslužnou rutinu události také aktuální vlastní podokno úloh z CustomTaskPanes kolekce.To pomáhá zabránit více instancí vlastní podokno úloh při otevření další e-mailové zprávy.
Sub InspectorWrapper_Close() Handles inspectorEvents.Close If Not (taskPane Is Nothing) Then Globals.ThisAddIn.CustomTaskPanes.Remove(taskPane) End If taskPane = Nothing Globals.ThisAddIn.InspectorWrappers.Remove(inspector) RemoveHandler inspectorEvents.Close, AddressOf InspectorWrapper_Close inspector = Nothing End Sub
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; }
Přidejte následující kód po kódu, který jste přidali v předchozím kroku.Dále v tomto návodu bude volat tuto vlastnost z metody ve vlastní uživatelské rozhraní pásu karet můžete zobrazit nebo skrýt vlastní podokno úloh.
Public ReadOnly Property CustomTaskPane() As CustomTaskPane Get Return taskPane End Get End Property End Class
public CustomTaskPane CustomTaskPane { get { return taskPane; } } }
Inicializace a vyčištění prostředků používaných doplněk
Přidejte kód ThisAddIn třída inicializovat v, která je načtena a k vyčištění prostředků používaných doplněk je uvolněn.Inicializaci doplňku nastavením obslužnou rutinu události NewInspector události a předáním všech e-mailů na tuto obslužnou rutinu události.Doplněk je uvolněn, odpojte obslužnou rutinu události a vyčistit objekty používané v.
K inicializaci a vyčištění prostředků používaných v
V ThisAddIn.cs nebo ThisAddIn.vb soubor, vyhledejte definice ThisAddIn třídy.
Přidejte následující prohlášení ThisAddIn třídy:
inspectorWrappersValue Pole obsahuje všechny Inspector a InspectorWrapper objekty, které jsou spravovány v.
inspectors Pole udržuje odkaz na kolekci windows Inspektor v aktuální instanci aplikace Outlook.Tento odkaz zabraňuje uvolňování uvolňování paměti, která obsahuje obslužnou rutinu NewInspector události deklarujete v dalším kroku.
Private inspectorWrappersValue As New Dictionary(Of Outlook.Inspector, InspectorWrapper) Private WithEvents inspectors As Outlook.Inspectors
private Dictionary<Outlook.Inspector, InspectorWrapper> inspectorWrappersValue = new Dictionary<Outlook.Inspector, InspectorWrapper>(); private Outlook.Inspectors inspectors;
Nahradit ThisAddIn_Startup metodu následujícím kódem.Připojí obslužnou rutinu události a NewInspector události a předává každý existující Inspector objekt do obslužné rutiny události.Pokud uživatel načte doplněk po je spuštěna aplikace Outlook, doplněk tuto informaci použije k vytvoření vlastní podokna úloh pro e-mailové zprávy, které jsou otevřené.
Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Startup inspectors = Me.Application.Inspectors Dim inspector As Outlook.Inspector For Each inspector In inspectors Inspectors_NewInspector(inspector) Next inspector End Sub
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); } }
Nahradit ThisAddIn_ShutDown metodu následujícím kódem.Odpojí tento kód NewInspector obslužné rutiny události a vyčistí objekty používané v.
Private Sub ThisAddIn_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Shutdown RemoveHandler inspectors.NewInspector, AddressOf Inspectors_NewInspector inspectors = Nothing inspectorWrappersValue = Nothing End Sub
private void ThisAddIn_Shutdown(object sender, System.EventArgs e) { inspectors.NewInspector -= new Outlook.InspectorsEvents_NewInspectorEventHandler( Inspectors_NewInspector); inspectors = null; inspectorWrappersValue = null; }
Přidejte následující NewInspector obslužnou rutinu události ThisAddIn třídy.Pokud je nový Inspector obsahuje e-mailové zprávy metoda vytvoří novou instanci InspectorWrapper objekt spravovat vztah mezi e-mailovou zprávu a odpovídající podokno úloh.
Sub Inspectors_NewInspector(ByVal Inspector As Outlook.Inspector) _ Handles inspectors.NewInspector If TypeOf Inspector.CurrentItem Is Outlook.MailItem Then inspectorWrappersValue.Add(Inspector, New InspectorWrapper(Inspector)) End If End Sub
void Inspectors_NewInspector(Outlook.Inspector Inspector) { if (Inspector.CurrentItem is Outlook.MailItem) { inspectorWrappersValue.Add(Inspector, new InspectorWrapper(Inspector)); } }
Přidat následující vlastnosti ThisAddIn třídy.Tato vlastnost poskytuje soukromé inspectorWrappersValue pole kód mimo ThisAddIn třídy.
Public ReadOnly Property InspectorWrappers() As Dictionary(Of Outlook.Inspector, InspectorWrapper) Get Return inspectorWrappersValue End Get End Property
public Dictionary<Outlook.Inspector, InspectorWrapper> InspectorWrappers { get { return inspectorWrappersValue; } }
Checkpoint
Sestavte projekt a zajistit, že se zkompiluje bez chyb.
Chcete-li sestavit projekt
- V Průzkumníku, klepněte pravým tlačítkem myši OutlookMailItemTaskPane projektu a potom klepněte na sestavení.Ověřte, že projekt zkompiluje bez chyb.
Synchronizace pásu přepínací tlačítko s vlastní podokno úloh
Se zobrazí přepínací tlačítko stisknuto, při podokno úloh je viditelná a zdá se nesmí být stisknuto při skryté podokno úloh.Změnit stav na tlačítko synchronizovat s vlastní podokno úloh, Click obslužné rutiny přepínací tlačítko.
Synchronizace s přepínací tlačítko Vlastní podokno úloh
V Návrháři pásu karet, poklepejte Zobrazit podokno úloh přepínací tlačítko.
Visual Studio automaticky generuje obslužnou rutinu s názvem toggleButton1_Click, která zpracovává Click události přepínací tlačítko.Visual Studio otevře také ManageTaskPaneRibbon.cs nebo ManageTaskPaneRibbon.vb souboru v editoru kódu.
Přidejte následující příkazy na začátek ManageTaskPaneRibbon.cs nebo ManageTaskPaneRibbon.vb souboru.
Imports Microsoft.Office.Tools.Ribbon Imports Outlook = Microsoft.Office.Interop.Outlook Imports Microsoft.Office.Tools
using Outlook = Microsoft.Office.Interop.Outlook; using Microsoft.Office.Tools;
Nahradit toggleButton1_Click obslužnou rutinu následujícím kódem.Po kliknutí na tlačítko Přepnout tuto metodu skryje nebo zobrazí vlastní podokno úloh, který je přidružen k aktuální okno inspektor.
Private Sub ToggleButton1_Click(ByVal sender As System.Object, _ ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) _ Handles ToggleButton1.Click Dim inspector As Outlook.Inspector = e.Control.Context Dim inspectorWrapper As InspectorWrapper = Globals.ThisAddIn.InspectorWrappers(inspector) Dim taskPane As CustomTaskPane = inspectorWrapper.CustomTaskPane If Not (taskPane Is Nothing) Then taskPane.Visible = TryCast(sender, RibbonToggleButton).Checked End If End Sub
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
Při spuštění ladění projektu aplikace Outlook otevře a doplněk načíst.V zobrazí jedinečné instance vlastní podokno úloh se každý e-mail, který je otevřen.Vytvoření několika nových e-mailových zpráv k testování kódu.
Testování v
Stisknutím klávesy F5.
V aplikaci Outlook, klepněte na Nový vytvořit novou zprávu elektronické pošty.
Na pásu karet e-mailové zprávy, klepněte Doplňky kartu a potom klepněte Zobrazit podokno úloh tlačítko.
Ověřte, zda podokno úloh s názvem Můj podokno úloh je zobrazen s e-mailovou zprávu.
První podokno úloh do textového pole zadejte podokno úloh.
Zavřete podokno úloh.
Ověřte stav Zobrazit podokno úloh změní tak, že není stisknuto tlačítko.
Klepněte Zobrazit podokno úloh znovu na tlačítko.
Ověřte, že otevře podokno úloh a textové pole obsahuje stále podokno úloh první řetězec.
V aplikaci Outlook, klepněte na Nový vytvořit druhý e-mail.
Na pásu karet e-mailové zprávy, klepněte Doplňky kartu a potom klepněte Zobrazit podokno úloh tlačítko.
Ověřte, zda podokno úloh s názvem Můj podokno úloh je zobrazen s e-mailovou zprávu a textové pole v této podokno úloh je prázdný.
Druhý podokno úloh do textového pole zadejte podokno úloh.
Změnit zaměření na první e-mailové zprávy.
Ověřte, že podokno úloh, který je přidružen k této e-mailové zprávy stále zobrazuje první podokno úloh textové pole.
Tento doplněk také zpracovává více pokročilé scénáře, které můžete vyzkoušet.Například testovat chování při zobrazení e-mailů pomocí Další položku a Předchozí položky tlačítka.Můžete také otestovat chování při uvolnění-in, otevřete několik e-mailových zpráv a pak znovu načíst doplněk.
Další kroky
Další informace o tom, jak vytvořit vlastní podokna úloh z těchto témat:
Vytvořte vlastní podokno úloh v přidat v jiné aplikaci.Další informace o aplikacích, které podporují vlastní podokna úloh, viz Vlastní podokna úloh.
Automatizace aplikace Microsoft Office pomocí vlastní podokno úloh.Další informace naleznete v tématu Názorný postup: Automatizace aplikace z podokna úloh Vlastní.
Vytvořte tlačítko na pásu karet aplikace Excel, který lze použít ke skrytí nebo zobrazení vlastní podokno úloh.Další informace naleznete v tématu Názorný postup: Synchronizace s pásu tlačítko Vlastní podokno úloh.
Viz také
Úkoly
Postup: do aplikace přidat vlastní podokno úloh
Názorný postup: Automatizace aplikace z podokna úloh Vlastní
Názorný postup: Synchronizace s pásu tlačítko Vlastní podokno úloh
Koncepty
Přístup k pásu karet v době spuštění