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:
Edycja programu Visual Studio 2013, która oferuje narzędzia deweloperskie pakietu Microsoft Office. Aby uzyskać więcej informacji, zobacz Konfigurowanie komputera do opracowywania rozwiązań pakietu Office.
Microsoft Outlook 2013 lub Microsoft Outlook 2010.
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ń
W Solution Explorer, kliknij OutlookMailItemTaskPane projektu.
Na Projekt menu, kliknij przycisk Dodać formant użytkownika.
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.
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
Na Projekt menu, kliknij przycisk Dodaj nowy element.
W Dodaj nowy element okno dialogowe, wybierz wstążki (Visual Designer).
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.
W Projektancie Wstążki kliknij grupa1.
W Właściwości okno, ustawić etykiety właściwość Menedżer okienka zadań.
Z Formanty wstążki Office karta Przybornik, przeciągnij formant typu przycisk przełącznika, na Menedżer okienka zadań grupy.
Kliknij przycisk toggleButton1.
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
W Projektancie Wstążki kliknij ManageTaskPaneRibbon wstążki.
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ń
W Solution Explorer, kliknij prawym przyciskiem myszy ThisAddIn.cs lub ThisAddIn.vb pliku, a następnie kliknij przycisk Widok Kod.
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;
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;
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); }
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; }
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; }
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
W ThisAddIn.cs lub ThisAddIn.vb plik, Znajdź definicję ThisAddIn klasy.
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;
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); } }
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; }
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)); } }
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
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.
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;
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
Naciśnij klawisz F5.
W programie Outlook, kliknij przycisk Nowa do utworzenia nowej wiadomości e-mail.
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.
W okienko zadań wpisz pierwszy okienko zadań w polu tekstowym.
Zamknij okienko zadań.
Sprawdź, czy stan Pokaż okienko zadań przycisku zmienia się tak, że nie jest wciśnięty.
Kliknij przycisk Pokaż okienko zadań przycisk ponownie.
Sprawdź, czy okienko zadań otwiera i że pole tekstowe zawiera jeszcze okienko zadań pierwszy ciąg.
W programie Outlook, kliknij przycisk Nowa do utworzenia drugiej wiadomości e-mail.
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.
W okienko zadań wpisz drugi okienko zadań w polu tekstowym.
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:
Tworzenie niestandardowych okienko zadań w dodatku do innej aplikacji.Aby uzyskać więcej informacji na temat aplikacji, które obsługują niestandardowe okienka zadań, zobacz Niestandardowe okienka zadań.
Automatyzacji aplikacji pakietu Microsoft Office za pomocą niestandardowych okienko zadań.Aby uzyskać więcej informacji, zobacz Wskazówki: automatyzacja aplikacji z niestandardowego okienka zadań.
Utwórz przycisk na Wstążce w programie Excel można ukrywać lub wyowietlać niestandardowe okienko zadań.Aby uzyskać więcej informacji, zobacz Wskazówka: synchronizacja niestandardowego okienka zadań z przyciskiem wstążki.
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