Przewodnik: wyświetlanie niestandardowych okienek zadań z wiadomościami e-mail w programie Outlook
W tym przewodniku pokazano, jak wyświetlić unikatowe wystąpienie niestandardowego okienka zadań z każdą utworzoną lub otwartą wiadomością e-mail. Użytkownicy mogą wyświetlać lub ukrywać niestandardowe okienko zadań przy użyciu przycisku na wstążce każdej wiadomości e-mail.
Dotyczy: informacje w tym temacie dotyczą projektów dodatków VSTO dla programu Outlook. Aby uzyskać więcej informacji, zobacz Funkcje dostępne przez aplikacja pakietu Office lication i typ projektu.
Aby wyświetlić niestandardowe okienko zadań z wieloma oknami Eksploratora lub Inspektora, należy utworzyć wystąpienie niestandardowego okienka zadań dla każdego otwartego okna. Aby uzyskać więcej informacji na temat zachowania niestandardowych okien zadań w oknach programu Outlook, zobacz Niestandardowe okienka zadań.
Uwaga
Ten przewodnik przedstawia kod dodatku VSTO w małych sekcjach, aby ułatwić omówienie logiki kodu.
W instruktażu przedstawiono następujące zagadnienia:
Projektowanie interfejsu użytkownika w niestandardowym okienku zadań.
Tworzenie niestandardowego interfejsu użytkownika wstążki.
Wyświetlanie niestandardowego interfejsu użytkownika wstążki z wiadomościami e-mail.
Tworzenie klasy do zarządzania oknami Inspector i niestandardowymi okienkami zadań.
Inicjowanie i czyszczenie zasobów używanych przez dodatek VSTO.
Synchronizowanie przycisku przełączania wstążki za pomocą niestandardowego okienka zadań.
Uwaga
Na komputerze w poniższych instrukcjach mogą być wyświetlane inne nazwy i lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio. Te elementy są określane przez numer wersji Visual Studio oraz twoje ustawienia. Aby uzyskać więcej informacji, zobacz Personalizowanie środowiska IDE programu Visual Studio.
Wymagania wstępne
Następujące składniki są wymagane do przeprowadzenia tego instruktażu:
Edycja programu Visual Studio, która oferuje narzędzia deweloperskie pakietu Microsoft Office. Aby uzyskać więcej informacji, zobacz Konfigurowanie komputera do tworzenia rozwiązań pakietu Office.
Microsoft Outlook 2013 lub Microsoft Outlook 2010.
Tworzenie projektu
Niestandardowe okienka zadań są implementowane w dodatku VSTO. Zacznij od utworzenia projektu dodatku VSTO dla programu Outlook.
Aby utworzyć nowy projekt
Utwórz projekt dodatku programu Outlook o nazwie OutlookMailItemTaskPane. Użyj szablonu projektu dodatku programu Outlook. Aby uzyskać więcej informacji, zobacz How to: Create Office projects in Visual Studio (Jak tworzyć projekty pakietu Office w programie Visual Studio).
Program Visual Studio otwiera plik kodu ThisAddIn.cs lub ThisAddIn.vb i dodaje projekt OutlookMailItemTaskPane do Eksplorator rozwiązań.
Projektowanie interfejsu użytkownika w niestandardowym okienku zadań
Nie ma projektanta wizualnego dla niestandardowych okienek zadań, ale możesz zaprojektować kontrolkę użytkownika przy użyciu żądanego interfejsu użytkownika. Niestandardowe okienko zadań w tym dodatku VSTO ma prosty interfejs użytkownika, który zawiera kontrolkę TextBox . W dalszej części tego przewodnika dodasz kontrolkę użytkownika do niestandardowego okienka zadań.
Aby zaprojektować interfejs użytkownika niestandardowego okienka zadań
W Eksplorator rozwiązań kliknij projekt OutlookMailItemTaskPane.
W menu Project (Projekt) kliknij pozycję Add User Control (Dodaj kontrolkę użytkownika).
W oknie dialogowym Dodawanie nowego elementu zmień nazwę kontrolki użytkownika na TaskPaneControl, a następnie kliknij przycisk Dodaj.
Kontrolka użytkownika zostanie otwarta w projektancie.
Na karcie Wspólne kontrolki przybornika przeciągnij kontrolkę TextBox do kontrolki użytkownika.
Projektowanie interfejsu użytkownika na wstążce
Jednym z celów tego dodatku VSTO jest zapewnienie użytkownikom możliwości ukrycia lub wyświetlenia niestandardowego okienka zadań ze wstążki każdej wiadomości e-mail. Aby udostępnić interfejs użytkownika, utwórz niestandardowy interfejs użytkownika wstążki, który wyświetla przycisk przełącznika, który użytkownicy mogą kliknąć, aby wyświetlić lub ukryć niestandardowe okienko zadań.
Aby utworzyć niestandardowy interfejs użytkownika wstążki
W menu Project (Projekt) kliknij pozycję Add New Item (Dodaj nowy element).
W oknie dialogowym Dodawanie nowego elementu wybierz pozycję Wstążka (Visual Projektant).
Zmień nazwę nowej wstążki na ManageTaskPaneRibbon, a następnie kliknij przycisk Dodaj.
Plik ManageTaskPaneRibbon.cs lub ManageTaskPaneRibbon.vb zostanie otwarty w Projektant wstążki i wyświetli domyślną kartę i grupę.
Na Projektant wstążki kliknij pozycję group1.
W oknie Właściwości ustaw właściwość Etykieta na Menedżer okienka zadań.
Na karcie Kontrolki wstążki pakietu Office przybornika przeciągnij kontrolkę ToggleButton do grupy Menedżer okienka zadań.
Kliknij przycisk przełącznikButton1.
W oknie Właściwości ustaw właściwość Etykieta na Pokaż okienko zadań.
Wyświetlanie niestandardowego interfejsu użytkownika wstążki z wiadomościami e-mail
Niestandardowe okienko zadań utworzone w tym przewodniku zostało zaprojektowane tak, aby było wyświetlane tylko w oknach Inspector (Inspektor), które zawierają wiadomości e-mail. W związku z tym ustaw właściwości, aby wyświetlić niestandardowy interfejs użytkownika wstążki tylko w tych oknach.
Aby wyświetlić niestandardowy interfejs użytkownika wstążki z wiadomościami e-mail
Na wstążce Projektant kliknij wstążkę ManageTaskPaneRibbon.
W oknie Właściwości kliknij listę rozwijaną obok pozycji RibbonType, a następnie wybierz pozycję Microsoft.Outlook.Mail.Compose i Microsoft.Outlook.Mail.Read.
Tworzenie klasy do zarządzania oknami inspektora i niestandardowymi okienkami zadań
Istnieje kilka przypadków, w których dodatek VSTO musi zidentyfikować, które niestandardowe okienko zadań jest skojarzone z określoną wiadomością e-mail. Te przypadki obejmują następujące elementy:
Gdy użytkownik zamknie wiadomość e-mail. W takim przypadku dodatek VSTO musi usunąć odpowiednie niestandardowe okienko zadań, aby upewnić się, że zasoby używane przez dodatek VSTO są prawidłowo czyszczone.
Gdy użytkownik zamknie niestandardowe okienko zadań. W takim przypadku dodatek VSTO musi zaktualizować stan przycisku przełącznika na wstążce wiadomości e-mail.
Gdy użytkownik kliknie przycisk przełącznika na wstążce. W takim przypadku dodatek VSTO musi ukrywać lub wyświetlać odpowiednie okienko zadań.
Aby włączyć dodatek VSTO, aby śledzić, które niestandardowe okienko zadań jest skojarzone z każdą otwartą wiadomością e-mail, utwórz klasę niestandardową, która opakowuje pary Inspector obiektów i CustomTaskPane . Ta klasa tworzy nowy niestandardowy obiekt okienka zadań dla każdej wiadomości e-mail i usuwa niestandardowe okienko zadań po zamknięciu odpowiedniej wiadomości e-mail.
Aby utworzyć klasę do zarządzania oknami inspektora i niestandardowymi okienkami zadań
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy plik ThisAddIn.cs lub ThisAddIn.vb, a następnie kliknij polecenie Wyświetl kod.
Dodaj poniższe instrukcje na początku pliku.
Dodaj następujący kod do pliku ThisAddIn.cs lub ThisAddIn.vb poza klasą
ThisAddIn
(dla języka Visual C#dodaj ten kod wewnątrzOutlookMailItemTaskPane
przestrzeni nazw). KlasaInspectorWrapper
zarządza parą Inspector obiektów i CustomTaskPane . W poniższych krokach ukończysz definicję tej klasy.Dodaj następujący konstruktor po kodzie dodanym w poprzednim kroku. Ten konstruktor tworzy i inicjuje nowe niestandardowe okienko zadań skojarzone z przekazanym obiektem Inspector . W języku C# konstruktor dołącza również programy obsługi zdarzeń do Close zdarzenia Inspector obiektu i VisibleChanged zdarzenia CustomTaskPane obiektu.
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 kodzie dodanym w poprzednim kroku. Ta metoda jest procedurą obsługi zdarzeń dla VisibleChanged zdarzenia CustomTaskPane obiektu, który znajduje się w
InspectorWrapper
klasie. Ten kod aktualizuje stan przycisku przełącznika za każdym razem, gdy użytkownik otworzy lub zamknie niestandardowe okienko zadań.Dodaj następującą metodę po kodzie dodanym w poprzednim kroku. Ta metoda jest procedurą obsługi zdarzeń dla Close zdarzenia obiektu zawierającego Inspector bieżącą wiadomość e-mail. Procedura obsługi zdarzeń zwalnia zasoby po zamknięciu wiadomości e-mail. Program obsługi zdarzeń usuwa również bieżące niestandardowe okienko zadań z kolekcji
CustomTaskPanes
. Pomaga to zapobiec wielu wystąpieniom niestandardowego okienka zadań po otwarciu następnej wiadomości e-mail.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 kodzie dodanym w poprzednim kroku. W dalszej części tego przewodnika wywołasz tę właściwość z metody w niestandardowym interfejsie użytkownika wstążki, aby wyświetlić lub ukryć niestandardowe okienko zadań.
Inicjowanie i czyszczenie zasobów używanych przez dodatek
Dodaj kod do klasy, ThisAddIn
aby zainicjować dodatek VSTO podczas ładowania i wyczyścić zasoby używane przez dodatek VSTO podczas jego zwolnienia. Zainicjuj dodatek VSTO, konfigurując program obsługi zdarzeń dla NewInspector zdarzenia i przekazując wszystkie istniejące wiadomości e-mail do tej procedury obsługi zdarzeń. Gdy dodatek VSTO zostanie zwolniony, odłącz program obsługi zdarzeń i wyczyść obiekty używane przez dodatek VSTO.
Aby zainicjować i wyczyścić zasoby używane przez dodatek VSTO
W pliku ThisAddIn.cs lub ThisAddIn.vb znajdź definicję
ThisAddIn
klasy.Dodaj następujące deklaracje do
ThisAddIn
klasy:Pole
inspectorWrappersValue
zawiera wszystkie Inspector obiekty iInspectorWrapper
zarządzane przez dodatek VSTO.Pole
inspectors
utrzymuje odwołanie do kolekcji okien Inspector w bieżącym wystąpieniu programu Outlook. To odwołanie uniemożliwia modułowi odśmiecania pamięci, który zawiera program obsługi zdarzeń dla NewInspector zdarzenia, który zostanie zadeklarowany w następnym kroku.
Zastąp metodę
ThisAddIn_Startup
następującym kodem. Ten kod dołącza procedurę obsługi zdarzeń do NewInspector zdarzenia i przekazuje każdy istniejący Inspector obiekt do programu obsługi zdarzeń. Jeśli użytkownik ładuje dodatek VSTO po uruchomieniu programu Outlook, dodatek VSTO używa tych informacji do tworzenia niestandardowych okienek zadań dla wszystkich otwartych wiadomości e-mail.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); } }
Zastąp metodę
ThisAddIn_ShutDown
następującym kodem. Ten kod odłącza NewInspector program obsługi zdarzeń i czyści obiekty używane przez dodatek VSTO.Dodaj następującą NewInspector procedurę
ThisAddIn
obsługi zdarzeń do klasy . Jeśli nowy Inspector komunikat zawiera wiadomość e-mail, metoda tworzy wystąpienie nowegoInspectorWrapper
obiektu w celu zarządzania relacją między wiadomością e-mail a odpowiednim okienkiem zadań.Dodaj następującą właściwość do
ThisAddIn
klasy. Ta właściwość uwidacznia pole prywatneinspectorWrappersValue
kodowi poza klasąThisAddIn
.
Punkt kontrolny
Skompiluj projekt, aby upewnić się, że kompiluje się bez błędów.
Aby skompilować projekt
- W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt OutlookMailItemTaskPane, a następnie kliknij polecenie Kompiluj. Sprawdź, czy projekt kompiluje się bez błędów.
Synchronizowanie przycisku przełączania wstążki z niestandardowym okienkiem zadań
Gdy okienko zadań jest widoczne, przycisk przełącznika będzie widoczny, a gdy okienko zadań zostanie ukryte, nie zostanie naciśnięty. Aby zsynchronizować stan przycisku z niestandardowym okienkiem zadań, zmodyfikuj Click procedurę obsługi zdarzeń przycisku przełącznika.
Aby zsynchronizować niestandardowe okienko zadań z przyciskiem przełącznika
Na Projektant wstążki kliknij dwukrotnie przycisk Pokaż okienko zadań.
Program Visual Studio automatycznie generuje program obsługi zdarzeń o nazwie
toggleButton1_Click
, który obsługuje Click zdarzenie przycisku przełącznika. Program Visual Studio otwiera również plik ManageTaskPaneRibbon.cs lub ManageTaskPaneRibbon.vb w Edytorze kodu.Dodaj następujące instrukcje na początku pliku ManageTaskPaneRibbon.cs lub ManageTaskPaneRibbon.vb .
Zastąp
toggleButton1_Click
program obsługi zdarzeń następującym kodem. Gdy użytkownik kliknie przycisk przełącznika, ta metoda ukrywa lub wyświetla niestandardowe okienko zadań skojarzone z bieżącym oknem Inspektor.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
Po rozpoczęciu debugowania projektu zostanie otwarty program Outlook, a dodatek VSTO zostanie załadowany. Dodatek VSTO wyświetla unikatowe wystąpienie niestandardowego okienka zadań z każdą otwartą wiadomością e-mail. Utwórz kilka nowych wiadomości e-mail, aby przetestować kod.
Aby przetestować dodatek VSTO
Naciśnij klawisz F5.
W programie Outlook kliknij pozycję Nowy , aby utworzyć nową wiadomość e-mail.
Na wstążce wiadomości e-mail kliknij kartę Dodatki, a następnie kliknij przycisk Pokaż okienko zadań.
Sprawdź, czy okienko zadań z tytułem Moje zadanie jest wyświetlane z wiadomością e-mail.
W okienku zadań wpisz Pierwsze okienko zadań w polu tekstowym.
Zamknij okienko Zadanie.
Sprawdź, czy stan przycisku Pokaż okienko zadań zmienia się tak, aby nie był już naciśnięty.
Kliknij ponownie przycisk Pokaż okienko zadań.
Sprawdź, czy zostanie otwarte okienko zadań i czy pole tekstowe nadal zawiera ciąg Pierwszy okienko zadań.
W programie Outlook kliknij pozycję Nowy , aby utworzyć drugą wiadomość e-mail.
Na wstążce wiadomości e-mail kliknij kartę Dodatki, a następnie kliknij przycisk Pokaż okienko zadań.
Sprawdź, czy okienko zadań z tytułem Moje okienko zadań jest wyświetlane z wiadomością e-mail, a pole tekstowe w tym okienku zadań jest puste.
W okienku zadań wpisz Drugie okienko zadań w polu tekstowym.
Zmień fokus na pierwszą wiadomość e-mail.
Sprawdź, czy okienko zadań skojarzone z tą wiadomością e-mail nadal wyświetla okienko Pierwszego zadania w polu tekstowym.
Ten dodatek VSTO obsługuje również bardziej zaawansowane scenariusze, które można wypróbować. Można na przykład przetestować zachowanie podczas wyświetlania wiadomości e-mail przy użyciu przycisków Następny element i Poprzedni element . Możesz również przetestować zachowanie podczas zwalniania dodatku VSTO, otwierania kilku wiadomości e-mail, a następnie ponownego ładowania dodatku VSTO.
Następne kroki
Więcej informacji na temat tworzenia niestandardowych okienek zadań można znaleźć w następujących tematach:
Utwórz niestandardowe okienko zadań w dodatku VSTO dla innej aplikacji. Aby uzyskać więcej informacji na temat aplikacji obsługujących niestandardowe okienka zadań, zobacz Niestandardowe okienka zadań.
Automatyzowanie aplikacja pakietu Office licacji firmy Microsoft przy użyciu niestandardowego okienka zadań. Aby uzyskać więcej informacji, zobacz Przewodnik: automatyzowanie aplikacji z niestandardowego okienka zadań.
Utwórz przycisk wstążki w programie Excel, który może służyć do ukrywania lub wyświetlania niestandardowego okienka zadań. Aby uzyskać więcej informacji, zobacz Przewodnik: Synchronizowanie niestandardowego okienka zadań z przyciskiem wstążki.
Powiązana zawartość
- Niestandardowe okienka zadań
- Instrukcje: dodawanie niestandardowego okienka zadań do aplikacji
- Przewodnik: automatyzowanie aplikacji z niestandardowego okienka zadań
- Przewodnik: synchronizowanie niestandardowego okienka zadań z przyciskiem wstążki
- Omówienie wstążki
- Omówienie modelu obiektów programu Outlook
- Uzyskiwanie dostępu do wstążki w czasie wykonywania