Bagikan melalui


Panduan: Menampilkan panel tugas kustom dengan pesan email di Outlook

Panduan ini menunjukkan cara menampilkan instans unik panel tugas kustom dengan setiap pesan email yang dibuat atau dibuka. Pengguna bisa menampilkan atau menyembunyikan panel tugas kustom dengan menggunakan tombol pada Pita setiap pesan email.

Berlaku untuk: Informasi dalam topik ini berlaku untuk proyek Add-in VSTO untuk Outlook. Untuk informasi selengkapnya, lihat Fitur yang tersedia berdasarkan aplikasi Office likasi dan jenis proyek.

Untuk menampilkan panel tugas kustom dengan beberapa jendela Explorer atau Inspector, Anda harus membuat instans panel tugas kustom untuk setiap jendela yang dibuka. Untuk informasi selengkapnya tentang perilaku panel tugas kustom di jendela Outlook, lihat Panel tugas kustom.

Catatan

Panduan ini menyajikan kode Add-in VSTO di bagian kecil untuk mempermudah diskusi logika di balik kode.

Panduan ini mengilustrasikan tugas-tugas berikut:

  • Merancang antarmuka pengguna (UI) panel tugas kustom.

  • Membuat UI Pita kustom.

  • Menampilkan UI Pita kustom dengan pesan email.

  • Membuat kelas untuk mengelola jendela Pemeriksa dan panel tugas kustom.

  • Menginisialisasi dan membersihkan sumber daya yang digunakan oleh Add-in VSTO.

  • Menyinkronkan tombol pengalih Pita dengan panel tugas kustom.

Catatan

Komputer Anda mungkin memperlihatkan nama atau lokasi yang berbeda untuk beberapa elemen antarmuka pengguna Visual Studio dalam petunjuk berikut. Edisi Visual Studio yang Anda miliki dan setelan yang Anda gunakan menentukan elemen-elemen ini. Untuk informasi selengkapnya, lihat Mempersonalisasi IDE Visual Studio.

Prasyarat

Anda memerlukan komponen berikut untuk menyelesaikan panduan ini:

Membuat proyek

Panel tugas kustom diimplementasikan di Add-in VSTO. Mulailah dengan membuat proyek Add-in VSTO untuk Outlook.

Untuk membuat proyek baru

  1. Buat proyek Add-in Outlook dengan nama OutlookMailItemTaskPane. Gunakan templat proyek Add-in Outlook. Untuk informasi selengkapnya, lihat Cara: Membuat proyek Office di Visual Studio.

    Visual Studio membuka file kode ThisAddIn.cs atau ThisAddIn.vb dan menambahkan proyek OutlookMailItemTaskPane ke Penjelajah Solusi.

Mendesain antarmuka pengguna panel tugas kustom

Tidak ada perancang visual untuk panel tugas kustom, tetapi Anda bisa merancang kontrol pengguna dengan UI yang Anda inginkan. Panel tugas kustom di Add-in VSTO ini memiliki UI sederhana yang berisi TextBox kontrol. Nanti dalam panduan ini, Anda akan menambahkan kontrol pengguna ke panel tugas kustom.

Untuk mendesain antarmuka pengguna panel tugas kustom

  1. Di Penjelajah Solusi, klik proyek OutlookMailItemTaskPane.

  2. Pada menu Proyek , klik Tambahkan Kontrol Pengguna.

  3. Dalam kotak dialog Tambahkan Item Baru, ubah nama kontrol pengguna menjadi TaskPaneControl, lalu klik Tambahkan.

    Kontrol pengguna terbuka di perancang.

  4. Dari tab Kontrol Umum kotak Alat, seret kontrol TextBox ke kontrol pengguna.

Mendesain antarmuka pengguna pita

Salah satu tujuan add-in VSTO ini adalah memberi pengguna cara untuk menyembunyikan atau menampilkan panel tugas kustom dari Pita setiap pesan email. Untuk menyediakan antarmuka pengguna, buat UI Pita kustom yang menampilkan tombol alih yang bisa diklik pengguna untuk menampilkan atau menyembunyikan panel tugas kustom.

Untuk membuat UI Pita kustom

  1. Pada menu Proyek, klik Tambahkan Item Baru.

  2. Dalam kotak dialog Tambahkan Item Baru, pilih Pita (Visual Designer).

  3. Ubah nama Pita baru menjadi KelolaTaskPaneRibbon, dan klik Tambahkan.

    File ManageTaskPaneRibbon.cs atau ManageTaskPaneRibbon.vb terbuka di Perancang Pita dan menampilkan tab dan grup default.

  4. Di Perancang Pita, klik grup1.

  5. Di jendela Properti , atur properti Label ke Pengelola Panel Tugas.

  6. Dari tab Kontrol Pita Office dari Kotak Alat, seret kontrol ToggleButton ke grup Pengelola Panel Tugas.

  7. Klik tombol alihButton1.

  8. Di jendela Properti , atur properti Label ke Perlihatkan Panel Tugas.

Menampilkan antarmuka pengguna Pita kustom dengan pesan email

Panel tugas kustom yang Anda buat dalam panduan ini dirancang untuk muncul hanya dengan jendela Pemeriksa yang berisi pesan email. Oleh karena itu, atur properti untuk menampilkan UI Pita kustom Anda hanya dengan jendela ini.

Untuk menampilkan UI Pita kustom dengan pesan email

  1. Di Perancang Pita, klik Pita KelolaTaskPaneRibbon .

  2. Di jendela Properti , klik daftar turun bawah di samping RibbonType, dan pilih Microsoft.Outlook.Mail.Compose dan Microsoft.Outlook.Mail.Read.

Membuat kelas untuk mengelola jendela pemeriksa dan panel tugas kustom

Ada beberapa kasus di mana Add-in VSTO harus mengidentifikasi panel tugas kustom mana yang terkait dengan pesan email tertentu. Kasus-kasus ini mencakup hal-hal berikut:

  • Saat pengguna menutup pesan email. Dalam hal ini, Add-in VSTO harus menghapus panel tugas kustom yang sesuai untuk memastikan bahwa sumber daya yang digunakan oleh Add-in VSTO dibersihkan dengan benar.

  • Saat pengguna menutup panel tugas kustom. Dalam hal ini, Add-in VSTO harus memperbarui status tombol alihkan pada pita pesan email.

  • Saat pengguna mengklik tombol alihkan pada pita. Dalam hal ini, Add-in VSTO harus menyembunyikan atau menampilkan panel tugas yang sesuai.

    Untuk mengaktifkan Add-in VSTO untuk melacak panel tugas kustom mana yang terkait dengan setiap pesan email terbuka, buat kelas kustom yang membungkus Inspector pasangan dan CustomTaskPane objek. Kelas ini membuat objek panel tugas kustom baru untuk setiap pesan email, dan menghapus panel tugas kustom saat pesan email terkait ditutup.

Untuk membuat kelas untuk mengelola jendela inspektur dan panel tugas kustom

  1. Di Penjelajah Solusi, klik kanan file ThisAddIn.cs atau ThisAddIn.vb, lalu klik Tampilkan Kode.

  2. Tambahkan pernyataan berikut ke bagian atas file.

    using Microsoft.Office.Tools;
    
  3. Tambahkan kode berikut ke file ThisAddIn.cs atau ThisAddIn.vb , di luar ThisAddIn kelas (untuk Visual C#, tambahkan kode ini di dalam OutlookMailItemTaskPane namespace). Kelas InspectorWrapper mengelola sepasang Inspector objek dan CustomTaskPane . Anda akan menyelesaikan definisi kelas ini dalam langkah-langkah berikut.

    public class InspectorWrapper
    {
        private Outlook.Inspector inspector;
        private CustomTaskPane taskPane;
    
  4. Tambahkan konstruktor berikut setelah kode yang Anda tambahkan di langkah sebelumnya. Konstruktor ini membuat dan menginisialisasi panel tugas kustom baru yang terkait dengan Inspector objek yang diteruskan. Di C#, konstruktor juga melampirkan penanganan aktivitas ke Close peristiwa Inspector objek dan ke VisibleChanged peristiwa CustomTaskPane objek.

    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. Tambahkan metode berikut setelah kode yang Anda tambahkan di langkah sebelumnya. Metode ini adalah penanganan aktivitas untuk VisibleChanged peristiwa CustomTaskPane objek yang terkandung dalam InspectorWrapper kelas. Kode ini memperbarui status tombol alih setiap kali pengguna membuka atau menutup panel tugas kustom.

    void TaskPane_VisibleChanged(object sender, EventArgs e)
    {
        Globals.Ribbons[inspector].ManageTaskPaneRibbon.toggleButton1.Checked = 
            taskPane.Visible;
    }
    
  6. Tambahkan metode berikut setelah kode yang Anda tambahkan di langkah sebelumnya. Metode ini adalah penanganan aktivitas untuk Close peristiwa Inspector objek yang berisi pesan email saat ini. Penanganan aktivitas membebaskan sumber daya saat pesan email ditutup. Penanganan aktivitas juga menghapus panel tugas kustom saat ini dari CustomTaskPanes koleksi. Ini membantu mencegah beberapa instans panel tugas kustom saat pesan email berikutnya dibuka.

    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. Tambahkan kode berikut setelah kode yang Anda tambahkan di langkah sebelumnya. Nanti dalam panduan ini, Anda akan memanggil properti ini dari metode di UI Pita kustom untuk menampilkan atau menyembunyikan panel tugas kustom.

        public CustomTaskPane CustomTaskPane
        {
            get
            {
                return taskPane;
            }
        }
    }
    

Menginisialisasi dan membersihkan sumber daya yang digunakan oleh Add-in

Tambahkan kode ke ThisAddIn kelas untuk menginisialisasi Add-in VSTO saat dimuat, dan untuk membersihkan sumber daya yang digunakan oleh Add-in VSTO saat dibongkar. Anda menginisialisasi Add-in VSTO dengan menyiapkan penanganan aktivitas untuk NewInspector peristiwa dan dengan meneruskan semua pesan email yang ada ke penanganan aktivitas ini. Ketika Add-in VSTO dibongkar, lepaskan penanganan aktivitas dan bersihkan objek yang digunakan oleh Add-in VSTO.

Untuk menginisialisasi dan membersihkan sumber daya yang digunakan oleh Add-in VSTO

  1. Dalam file ThisAddIn.cs atau ThisAddIn.vb, temukan definisi ThisAddIn kelas .

  2. Tambahkan deklarasi berikut ke ThisAddIn kelas :

    • Bidang inspectorWrappersValue berisi semua Inspector objek dan InspectorWrapper yang dikelola oleh Add-in VSTO.

    • Bidang mempertahankan inspectors referensi ke kumpulan jendela Pemeriksa dalam instans Outlook saat ini. Referensi ini mencegah pengumpul sampah membebaskan memori yang berisi penanganan aktivitas untuk NewInspector peristiwa, yang akan Anda nyatakan di langkah berikutnya.

      private Dictionary<Outlook.Inspector, InspectorWrapper> inspectorWrappersValue =
          new Dictionary<Outlook.Inspector, InspectorWrapper>();
      private Outlook.Inspectors inspectors;
      

  3. Ganti metode ThisAddIn_Startup dengan kode berikut. Kode ini melampirkan penanganan aktivitas ke NewInspector peristiwa, dan meneruskan setiap objek yang ada Inspector ke penanganan aktivitas. Jika pengguna memuat Add-in VSTO setelah Outlook berjalan, Add-in VSTO menggunakan informasi ini untuk membuat panel tugas kustom untuk semua pesan email yang sudah terbuka.

    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. Ganti metode ThisAddIn_ShutDown dengan kode berikut. Kode ini mencopot NewInspector penanganan aktivitas dan membersihkan objek yang digunakan oleh Add-in VSTO.

    private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
    {
        inspectors.NewInspector -=
            new Outlook.InspectorsEvents_NewInspectorEventHandler(
            Inspectors_NewInspector);
        inspectors = null;
        inspectorWrappersValue = null;
    }
    
  5. Tambahkan penanganan aktivitas berikut NewInspector ke ThisAddIn kelas . Jika baru Inspector berisi pesan email, metode membuat instans objek baru InspectorWrapper untuk mengelola hubungan antara pesan email dan panel tugas yang sesuai.

    void Inspectors_NewInspector(Outlook.Inspector Inspector)
    {
        if (Inspector.CurrentItem is Outlook.MailItem)
        {
            inspectorWrappersValue.Add(Inspector, new InspectorWrapper(Inspector));
        }
    }
    
  6. Tambahkan properti berikut ke ThisAddIn kelas . Properti ini mengekspos bidang privat inspectorWrappersValue ke kode di luar ThisAddIn kelas.

    public Dictionary<Outlook.Inspector, InspectorWrapper> InspectorWrappers
    {
        get
        {
            return inspectorWrappersValue;
        }
    }
    

Pos pemeriksaan

Bangun proyek Anda untuk memastikan bahwa proyek dikompilasi tanpa kesalahan.

Untuk membangun proyek Anda

  1. Di Penjelajah Solusi, klik kanan proyek OutlookMailItemTaskPane lalu klik Bangun. Verifikasi bahwa proyek dikompilasi tanpa kesalahan.

Sinkronkan tombol alih Pita dengan panel tugas kustom

Tombol bolak-balik akan tampak ditekan saat panel tugas terlihat, dan akan tampak tidak ditekan saat panel tugas disembunyikan. Untuk menyinkronkan status tombol dengan panel tugas kustom, ubah Click penanganan aktivitas tombol alih.

Untuk menyinkronkan panel tugas kustom dengan tombol alih

  1. Di Perancang Pita, klik ganda tombol Perlihatkan tombol alih Panel Tugas.

    Visual Studio secara otomatis menghasilkan penanganan aktivitas bernama toggleButton1_Click, yang menangani Click peristiwa tombol pengalih. Visual Studio juga membuka file ManageTaskPaneRibbon.cs atau ManageTaskPaneRibbon.vb di Editor Kode.

  2. Tambahkan pernyataan berikut ke bagian atas file ManageTaskPaneRibbon.cs atau ManageTaskPaneRibbon.vb .

    using Outlook = Microsoft.Office.Interop.Outlook;
    using Microsoft.Office.Tools;
    
  3. Ganti penanganan toggleButton1_Click aktivitas dengan kode berikut. Saat pengguna mengklik tombol alih, metode ini menyembunyikan atau menampilkan panel tugas kustom yang terkait dengan jendela Pemeriksa saat ini.

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

Menguji proyek

Saat Anda mulai men-debug proyek, Outlook terbuka dan Add-in VSTO dimuat. Add-in VSTO menampilkan instans unik panel tugas kustom dengan setiap pesan email yang dibuka. Buat beberapa pesan email baru untuk menguji kode.

Untuk menguji Add-in VSTO

  1. Tekan F5.

  2. Di Outlook, klik Baru untuk membuat pesan email baru.

  3. Pada pita pesan email, klik tab Add-In , lalu klik tombol Perlihatkan Panel Tugas.

    Verifikasi bahwa panel tugas dengan judul Panel tugas saya ditampilkan dengan pesan email.

  4. Di panel tugas, ketik panel Tugas pertama di kotak teks.

  5. Tutup panel tugas.

    Verifikasi bahwa status tombol Perlihatkan Panel Tugas berubah sehingga tidak lagi ditekan.

  6. Klik tombol Perlihatkan Panel Tugas lagi.

    Verifikasi bahwa panel tugas terbuka, dan bahwa kotak teks masih berisi panel tugas Pertama string.

  7. Di Outlook, klik Baru untuk membuat pesan email kedua.

  8. Pada pita pesan email, klik tab Add-In , lalu klik tombol Perlihatkan Panel Tugas.

    Verifikasi bahwa panel tugas dengan judul Panel tugas saya ditampilkan dengan pesan email, dan kotak teks di panel tugas ini kosong.

  9. Di panel tugas, ketik panel Tugas kedua di kotak teks.

  10. Ubah fokus ke pesan email pertama.

    Verifikasi bahwa panel tugas yang terkait dengan pesan email ini masih menampilkan panel Tugas pertama dalam kotak teks.

    Add-in VSTO ini juga menangani skenario yang lebih canggih yang dapat Anda coba. Misalnya, Anda dapat menguji perilaku saat melihat email dengan menggunakan tombol Item Berikutnya dan Item Sebelumnya. Anda juga dapat menguji perilaku saat membongkar Add-in VSTO, membuka beberapa pesan email, lalu memuat ulang Add-in VSTO.

Langkah berikutnya

Anda bisa mempelajari selengkapnya tentang cara membuat panel tugas kustom dari topik ini:

  • Buat panel tugas kustom di Add-in VSTO untuk aplikasi lain. Untuk informasi selengkapnya tentang aplikasi yang mendukung panel tugas kustom, lihat Panel tugas kustom.

  • Mengotomatiskan Microsoft aplikasi Office lication dengan menggunakan panel tugas kustom. Untuk informasi selengkapnya, lihat Panduan: Mengotomatiskan aplikasi dari panel tugas kustom.

  • Tombol Buat Pita di Excel yang bisa digunakan untuk menyembunyikan atau menampilkan panel tugas kustom. Untuk informasi selengkapnya, lihat Panduan: Menyinkronkan panel tugas kustom dengan tombol Pita.