Sdílet prostřednictvím


Návod: Zobrazení vlastních podoken úloh s e-mailovými zprávami 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 Outlooku 2013 a v Outlooku 2010. Další informace najdete v tématu Dostupné funkce podle aplikací systému 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 Přizpůsobení nastavení pro vývoj v sadě Visual Studio.

Požadavky

Chcete-li dokončit tento návod, potřebujete následující komponenty:

odkaz na video 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

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

  1. V Průzkumníku, klepněte OutlookMailItemTaskPane projektu.

  2. Na projektu nabídky, klepněte na Přidat uživatelský ovládací prvek.

  3. 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.

  4. 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

  1. V nabídce Projekt klikněte na příkaz Přidat novou položku.

  2. V Přidat novou položku dialogovém pásu karet (vizuální návrhář).

  3. 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.

  4. Návrhář pásu karet klepněte na tlačítko skupina1.

  5. V Vlastnosti okno, nastavit štítek vlastnost do Správce podokna úloh.

  6. 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.

  7. Klepněte na toggleButton1.

  8. 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

  1. V Návrháři pásu karet klepněte ManageTaskPaneRibbon pásu.

  2. 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

  1. 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.

  2. 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;
    
  3. 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;
    
  4. 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);
    }
    
  5. 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;
    }
    
  6. 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;
    }
    
  7. 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

  1. V ThisAddIn.cs nebo ThisAddIn.vb soubor, vyhledejte definice ThisAddIn třídy.

  2. 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;
    
  3. 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);
        }
    }
    
  4. 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;
    }
    
  5. 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));
        }
    }
    
  6. 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

  1. 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.

  2. 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;
    
  3. 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

  1. Stisknutím klávesy F5.

  2. V aplikaci Outlook, klepněte na Nový vytvořit novou zprávu elektronické pošty.

  3. 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.

  4. První podokno úloh do textového pole zadejte podokno úloh.

  5. Zavřete podokno úloh.

    Ověřte stav Zobrazit podokno úloh změní tak, že není stisknuto tlačítko.

  6. 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.

  7. V aplikaci Outlook, klepněte na Nový vytvořit druhý e-mail.

  8. 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ý.

  9. Druhý podokno úloh do textového pole zadejte podokno úloh.

  10. 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:

Viz také

Úkoly

Postupy: Přidání vlastního podokna úloh do aplikace

Návod: Automatizace aplikace z vlastního podokna úloh

Návod: Synchronizace vlastního podokna úloh s tlačítkem na pásu karet

Koncepty

Přístup k pásu karet za běhu

Další zdroje

Vlastní podokna úloh

Přehled pásu karet

Přehled modelu objektů aplikace Outlook