Udostępnij za pośrednictwem


Wskazówki: wyświetlanie niestandardowych okienek zadań z wiadomościami e-mail w programie Outlook

W tym instruktażu przedstawiono sposób wyświetlane unikatowe wystąpienie niestandardowego okienko zadań do każdej wiadomości e-mail, który został utworzony lub otwarty.Użytkownicy mogą wyświetlić lub ukryć okienko zadań niestandardowe przy użyciu przycisku na Wstążce każdej wiadomości e-mail.

Zastosowanie: Informacje przedstawione w tym temacie mają zastosowanie do projektów na poziomie aplikacji obsługiwanych w programach Outlook 2013 i Outlook 2010. Aby uzyskać więcej informacji, zobacz Funkcje dostępne w aplikacjach pakietu Office i typ projektu.

Aby wyświetlić niestandardowe okienko zadań z wieloma Eksploratora lub Inspektora, windows, należy utworzyć wystąpienie okienko zadań niestandardowe dla każdego okna, który jest otwarty.Aby uzyskać więcej informacji o zachowaniu niestandardowe okienka zadań w programie Outlook w systemie windows, zobacz Niestandardowe okienka zadań.

[!UWAGA]

W tym instruktażu przedstawiono kod dodatku w sekcjach małe, aby łatwiej dyskutować logiki kod.

W tym instruktażu przedstawiono następujące zadania:

  • Projektowania interfejsu użytkownika (UI) okienko zadań niestandardowe.

  • Tworzenie niestandardowego interfejsu użytkownika wstążki.

  • Wyświetlanie niestandardowego interfejsu użytkownika wstążki z wiadomości e-mail.

  • Tworzenie klasy do zarządzania windows Inspektor i niestandardowe okienka zadań.

  • Inicjowanie i czyszczenie zasoby używane przez dodatek.

  • Synchronizowanie przycisk przełącznika wstążki z niestandardowego okienko zadań.

[!UWAGA]

Komputer może pokazać różne nazwy lub lokalizacje dla niektórych użytkowników programu Visual Studio elementów interfejsu w poniższych instrukcji.Wydanie programu Visual Studio, że masz i ustawienia, które możesz używać określenia tych elementów.Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.

Wymagania wstępne

Potrzebne do przeprowadzenia tego instruktażu następujące składniki:

łącze do wideo Aby wyświetlić pokrewne wideo demonstracyjne, zobacz jak zrobić I: Użyj okienka zadań w programie Outlook?.

Tworzenie projektu

Niestandardowe okienka zadań są implementowane w poziomie aplikacji dodatków.Rozpocząć od utworzenia projektu dodatek dla programu Outlook.

Aby utworzyć nowy projekt

  • Tworzenie Outlook Add-in projekt o nazwie OutlookMailItemTaskPane.Użycie Outlook Add-in szablonu projektu.Aby uzyskać więcej informacji, zobacz Porady: tworzenie projektów Office w Visual Studio.

    Visual StudioOtwiera ThisAddIn.cs lub ThisAddIn.vb kod pliku i dodaje OutlookMailItemTaskPane projekt Solution Explorer.

Projektowanie interfejsu użytkownika niestandardowego okienka zadań

Brak projektanta wizualne dla niestandardowych okienek zadań, ale można zaprojektować formant użytkownika z interfejsu użytkownika ma.Niestandardowe okienko zadań w ten dodatek ma prosty interfejs użytkownika, który zawiera TextBox kontroli.Później w tym instruktażu dodasz formant użytkownika do okienko zadań niestandardowe.

Aby zaprojektować interfejs użytkownika niestandardowego okienko zadań

  1. W Solution Explorer, kliknij OutlookMailItemTaskPane projektu.

  2. Na Projekt menu, kliknij przycisk Dodać formant użytkownika.

  3. W Dodaj nowy element okno dialogowe pole, Zmień nazwę formantu, aby TaskPaneControl, a następnie kliknij przycisk Dodaj.

    Kontrola użytkownika zostanie otwarty w projektancie.

  4. Z Wspólnej kontroli karta Przybornik, przeciągnij pole tekstowe kontroli do kontroli użytkownika.

Projektowanie interfejsu użytkownika wstążki

Jednym z celów na ten dodatek jest dać użytkownikom sposób, aby ukrywać lub wyowietlać niestandardowe okienko zadań ze Wstążki każdej wiadomości e-mail.Aby udostępnić interfejs użytkownika, należy utworzyć niestandardowego interfejsu użytkownika wstążki, który wyświetla przycisk przełącznika, który użytkownicy mogą kliknąć, aby wyświetlić lub ukryć okienko zadań niestandardowe.

Aby utworzyć niestandardowego interfejsu użytkownika wstążki

  1. Na Projekt menu, kliknij przycisk Dodaj nowy element.

  2. W Dodaj nowy element okno dialogowe, wybierz wstążki (Visual Designer).

  3. Zmień nazwę nowej taśmy do ManageTaskPaneRibboni kliknij przycisk Dodaj.

    ManageTaskPaneRibbon.cs lub ManageTaskPaneRibbon.vb plik zostanie otwarty w Projektancie Wstążki i wyświetla domyślną kartę i grupy.

  4. W Projektancie Wstążki kliknij grupa1.

  5. W Właściwości okno, ustawić etykiety właściwość Menedżer okienka zadań.

  6. Z Formanty wstążki Office karta Przybornik, przeciągnij formant typu przycisk przełącznika, na Menedżer okienka zadań grupy.

  7. Kliknij przycisk toggleButton1.

  8. W Właściwości okno, ustawić etykiety właściwość, aby wyświetlić okienko zadań.

Wyświetlanie interfejsu użytkownika wstążki niestandardowe z wiadomości E-Mail

Okienko zadań niestandardowe, które są tworzone w tym instruktażu ma na celu pojawiają się tylko z okna Inspektora, które zawierają wiadomości e-mail.W związku z tym należy ustawić właściwości, aby wyświetlić niestandardowego interfejsu użytkownika wstążki tylko z tych okien.

Aby wyświetlić niestandardowego interfejsu użytkownika wstążki z wiadomości e-mail

  1. W Projektancie Wstążki kliknij ManageTaskPaneRibbon wstążki.

  2. W Właściwości okno, kliknij listę rozwijaną listę obok RibbonTypei wybierz Microsoft.Outlook.Mail.Compose i Microsoft.Outlook.Mail.Read.

Tworzenie klasy do zarządzania Windows Inspektor i niestandardowe okienka zadań

Istnieje kilka przypadków, w których dodatek musi zidentyfikować okienko zadań niestandardowe, które jest związane z określonych wiadomości.Te przypadki są następujące:

  • Kiedy użytkownik zamyka wiadomości e-mail.W takim przypadku dodatek należy usunąć odpowiednie niestandardowe okienko zadań do zapewnienia, że zasoby używane przez dodatek są prawidłowo czyszczone.

  • Kiedy użytkownik zamyka okienko zadań niestandardowe.W takim przypadku dodatek musi zaktualizować stan przycisku przełącznika na Wstążce wiadomość e-mail.

  • Gdy użytkownik kliknie przycisk przełącznika na Wstążce.W takim przypadku dodatek należy ukryć lub wyświetlić odpowiedni okienko zadań.

Aby włączyć dodatek do śledzenia okienko zadań niestandardowe, które jest związane z każdej otwartej wiadomości e-mail, należy utworzyć niestandardowe klasy, która otacza par Inspector i CustomTaskPane obiektów.Tej klasy tworzy nowy obiekt niestandardowy okienko zadań dla każdej wiadomości e-mail i usuwa niestandardowe okienko zadań, gdy odpowiednia wiadomość e-mail jest zamknięty.

Aby utworzyć klasę do zarządzania windows Inspektor i niestandardowe okienka zadań

  1. W Solution Explorer, kliknij prawym przyciskiem myszy ThisAddIn.cs lub ThisAddIn.vb pliku, a następnie kliknij przycisk Widok Kod.

  2. Dodaj następujące instrukcje do początku pliku.

    Imports System.Collections.Generic
    Imports Microsoft.Office.Tools
    Imports Office = Microsoft.Office.Core
    Imports Outlook = Microsoft.Office.Interop.Outlook
    
    using Microsoft.Office.Tools;
    
  3. Dodaj następujący kod do ThisAddIn.cs lub ThisAddIn.vb pliku, poza ThisAddIn klasy (dla programu Visual C#, Dodaj ten kod wewnątrz OutlookMailItemTaskPane obszaru nazw).InspectorWrapper Klasy zarządza parę Inspector i CustomTaskPane obiektów.Definicja tej klasy w poniższych krokach zostanie zakończony.

    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. Dodaj Konstruktor następujące po kodzie, który dodano w poprzednim kroku.Ten konstruktor tworzy i inicjuje nowe niestandardowe okienko zadań, który jest skojarzony z Inspector obiekt, który jest przekazywana.W języku C#, Konstruktor przywiązuje także programy obsługi zdarzeń do Close zdarzenie z Inspector obiektu i do VisibleChanged zdarzenie z CustomTaskPane obiektu.

    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. Dodaj następującą metodę po kod, który dodano w poprzednim kroku.Ta metoda jest moduł obsługi zdarzenia VisibleChanged przypadku CustomTaskPane obiekt, który jest zawarty w InspectorWrapper klasy.Ten kod aktualizacji stanu przycisku przełącznika, w każdym przypadku, gdy użytkownik otwiera lub zamyka okienko zadań niestandardowe.

    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. Dodaj następującą metodę po kod, który dodano w poprzednim kroku.Ta metoda jest moduł obsługi zdarzenia Close przypadku Inspector obiekt, który zawiera bieżące wiadomości e-mail.Obsługa zdarzeń zwalnia zasoby, gdy wiadomość e-mail jest zamknięty.Obsługa zdarzeń powoduje również usunięcie bieżącego niestandardowe okienko zadań z CustomTaskPanes kolekcji.Pomaga to zapobiegać wielu wystąpień niestandardowe okienko zadań przy otwieraniu następnej wiadomości e-mail.

    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. Dodaj następujący kod po kod, który dodano w poprzednim kroku.Później w tym instruktażu będzie wywoływać tej właściwości z metody w niestandardowego interfejsu użytkownika wstążki, aby wyświetlić lub ukryć okienko zadań niestandardowe.

    Public ReadOnly Property CustomTaskPane() As CustomTaskPane
            Get 
                Return taskPane
            End Get 
        End Property 
    End Class
    
    public CustomTaskPane CustomTaskPane
        {
            get
            {
                return taskPane;
            }
        }
    }
    

Inicjowanie i czyszczenie zasoby używane przez dodatek

Dodawanie kodu do ThisAddIn klasy zainicjować dodatek po załadowaniu i oczyścić zasoby używane przez dodatek, gdy jest zwalniany.Należy zainicjować dodatku poprzez utworzenie obsługi zdarzenia NewInspector zdarzeń i przekazując wszystkie istniejące wiadomości e-mail do obsługi tego zdarzenia.Gdy dodatek jest zwalniany, odłączyć obsługi zdarzeń i czyszczenie obiektów używanych przez dodatek.

Do inicjowania i oczyścić zasoby używane przez dodatek

  1. W ThisAddIn.cs lub ThisAddIn.vb plik, Znajdź definicję ThisAddIn klasy.

  2. Dodaj następujące deklaracje do ThisAddIn klasy:

    • inspectorWrappersValue Pole zawiera wszystkie Inspector i InspectorWrapper obiektów, które są zarządzane przez dodatek.

    • inspectors Pole prowadzi odwołanie do kolekcji windows inspektora w bieżącym wystąpieniu programu Outlook.To odwołanie uniemożliwia garbage collector zwalniania pamięci, która zawiera program obsługi zdarzeń dla NewInspector zdarzenie, które będzie stwierdzenie, w następnym 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. Zamień ThisAddIn_Startup metoda następujący kod.Ten kod przywiązuje Obsługa zdarzeń do NewInspector zdarzenie, a przechodzi przez każdy istniejący Inspector obiektu do obsługi zdarzeń.Jeśli użytkownik ładuje dodatek po programu Outlook jest już uruchomiony, dodatek wykorzystuje te informacje do tworzenia niestandardowych okienek zadań dla wszystkich wiadomości e-mail, które są już otwarte.

    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. Zamień ThisAddIn_ShutDown metoda następujący kod.Odłącza ten kod NewInspector programu obsługi zdarzeń i czyści obiektów używanych przez dodatek.

    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. Dodaj następujący NewInspector obsługi zdarzeń do ThisAddIn klasy.Jeśli nowy Inspector zawiera wiadomości e-mail, metoda tworzy instancję nowy InspectorWrapper obiektu do zarządzania relacjami między wiadomości e-mail i odpowiednie okienko zadań.

    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. Dodaj następujące właściwości, aby ThisAddIn klasy.Ta właściwość udostępnia prywatnego inspectorWrappersValue pola dla kodu poza ThisAddIn klasy.

    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;
        }
    }
    

Punkt kontrolny

Budowanie projektu w celu zapewnienia, że skompilowany bez błędów.

Tworzenie projektu

  • W Solution Explorer, kliknij prawym przyciskiem myszy OutlookMailItemTaskPane projektu, a następnie kliknij przycisk budować.Zweryfikuj, że projekt kompiluje się bez błędów.

Synchronizowanie przycisk przełącznika wstążki z niestandardowe okienko zadań

Przycisk przełącznika będą miały być wciśnięty, gdy okienko zadań jest widoczny, i pojawi się nie być wciśnięty w, gdy okienko zadań jest ukryty.Zsynchronizować stanu przycisku z okienko zadań niestandardowe, należy zmodyfikować Click obsługi zdarzenia przycisku przełącznika.

Aby zsynchronizować niestandardowe okienko zadań z przycisku przełącznika

  1. W Projektancie wstążki, kliknij dwukrotnie Pokaż okienko zadań przycisk przełącznika.

    Visual Studio generuje automatycznie program obsługi zdarzeń o nazwie toggleButton1_Click, dojścia Click przycisku przełącznika.Otwiera również Visual Studio ManageTaskPaneRibbon.cs lub ManageTaskPaneRibbon.vb plik w edytorze kodu.

  2. Dodaj następujące instrukcje do góry ManageTaskPaneRibbon.cs lub ManageTaskPaneRibbon.vb pliku.

    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. Zamień toggleButton1_Click obsługi zdarzeń z następującego kodu.Gdy użytkownik kliknie przycisk przełącznika, ta metoda ukrywa lub wyświetla niestandardowych okienko zadań, który jest skojarzony z bieżącego okna Inspektora.

    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;
        }
    }
    

Testowanie projektu

Podczas uruchamiania debugowania projekt zostanie otwarty w programie Outlook i ładowany jest dodatek.Dodatek zawiera unikatowe wystąpienie niestandardowego okienko zadań do każdej wiadomości e-mail, który jest otwarty.Utwórz nowe wiadomości e-mail w celu przetestowania kodu.

Aby przetestować dodatek

  1. Naciśnij klawisz F5.

  2. W programie Outlook, kliknij przycisk Nowa do utworzenia nowej wiadomości e-mail.

  3. Kliknij na Wstążce wiadomość e-mail, Dodatki , a następnie kliknij pozycję Pokaż okienko zadań przycisk.

    Sprawdź, czy okienko zadań z tytułu mojej okienko zadań jest wyświetlany z wiadomości e-mail.

  4. W okienko zadań wpisz pierwszy okienko zadań w polu tekstowym.

  5. Zamknij okienko zadań.

    Sprawdź, czy stan Pokaż okienko zadań przycisku zmienia się tak, że nie jest wciśnięty.

  6. Kliknij przycisk Pokaż okienko zadań przycisk ponownie.

    Sprawdź, czy okienko zadań otwiera i że pole tekstowe zawiera jeszcze okienko zadań pierwszy ciąg.

  7. W programie Outlook, kliknij przycisk Nowa do utworzenia drugiej wiadomości e-mail.

  8. Kliknij na Wstążce wiadomość e-mail, Dodatki , a następnie kliknij pozycję Pokaż okienko zadań przycisk.

    Sprawdź, czy okienko zadań z tytułu mojej okienko zadań jest wyświetlany z wiadomości e-mail i pole tekstowe, w tym okienko zadań jest pusty.

  9. W okienko zadań wpisz drugi okienko zadań w polu tekstowym.

  10. Zmienić fokus na pierwszej wiadomości e-mail.

    Sprawdź, czy okienko zadań, który jest skojarzony z tą wiadomością e-mail nadal wyświetlany pierwszy okienko zadań w polu tekstowym.

Ten dodatek obsługuje również więcej zaawansowanych scenariuszy, które można wypróbować.Na przykład, można testować zachowanie podczas przeglądania wiadomości e-mail za pomocą Następny element i Poprzedniego elementu przyciski.Można także testować zachowanie, gdy zwolnienie, otworzyć kilka wiadomości e-mail i ponownie załadować dodatek.

Następne kroki

Można uzyskać więcej informacji na temat tworzenia niestandardowych okienek zadań z tych tematów:

Zobacz też

Zadania

Porady: dodawanie niestandardowego okienka zadań do aplikacji

Wskazówki: automatyzacja aplikacji z niestandardowego okienka zadań

Wskazówka: synchronizacja niestandardowego okienka zadań z przyciskiem wstążki

Koncepcje

Uzyskiwanie dostępu do wstążki w czasie wykonywania

Inne zasoby

Niestandardowe okienka zadań

Wstążka ― Omówienie

Model obiektu Outlook ― Omówienie