Bagikan melalui


Menyesuaikan fitur UI dengan menggunakan antarmuka ekstensibilitas

Alat pengembangan Office di Visual Studio menyediakan kelas dan perancang yang menangani banyak detail implementasi saat Anda menggunakannya untuk membuat panel tugas kustom, kustomisasi pita, dan wilayah formulir Outlook di Add-in VSTO. Namun, Anda juga dapat menerapkan antarmuka ekstensibilitas untuk setiap fitur sendiri jika Anda memiliki persyaratan khusus.

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

Microsoft Office menentukan sekumpulan antarmuka ekstensibilitas yang dapat diterapkan add-in COM VSTO untuk mengkustomisasi fitur tertentu, seperti pita. Antarmuka ini memberikan kontrol penuh atas fitur yang mereka berikan akses. Namun, menerapkan antarmuka ini membutuhkan beberapa pengetahuan tentang interoperabilitas COM dalam kode terkelola. Dalam beberapa kasus, model pemrograman antarmuka ini juga tidak intuitif bagi pengembang yang terbiasa dengan .NET Framework.

Saat Anda membuat Add-in VSTO dengan menggunakan templat proyek Office di Visual Studio, Anda tidak perlu menerapkan antarmuka ekstensibilitas untuk mengkustomisasi fitur seperti pita. Runtime Visual Studio Tools for Office mengimplementasikan antarmuka ini untuk Anda. Sebagai gantinya, Anda dapat menggunakan kelas dan desainer yang lebih intuitif yang disediakan oleh Visual Studio. Namun, Anda masih dapat mengimplementasikan antarmuka ekstensibilitas langsung di Add-in VSTO Jika mau.

Untuk informasi selengkapnya tentang kelas dan desainer yang disediakan Visual Studio untuk fitur ini, lihat Panel tugas kustom, Perancang pita, dan Membuat wilayah formulir Outlook.

Antarmuka ekstensibilitas yang dapat Anda terapkan dalam Add-in VSTO

Tabel berikut mencantumkan antarmuka ekstensibilitas yang dapat Anda terapkan dan aplikasi yang mendukungnya.

Antarmuka Deskripsi Aplikasi
IRibbonExtensibility Terapkan antarmuka ini untuk mengkustomisasi UI pita. Catatan: Anda dapat menambahkan item Pita (XML) ke proyek untuk menghasilkan implementasi default IRibbonExtensibility di Add-in VSTO Anda. Untuk informasi selengkapnya, lihat XML Pita. Excel

InfoPath 2013

InfoPath 2010

Outlook

PowerPoint

Project

Visio

Word
ICustomTaskPaneConsumer Terapkan antarmuka ini untuk membuat panel tugas kustom. Excel

Outlook

PowerPoint

Kata
FormRegionStartup Terapkan antarmuka ini untuk membuat wilayah formulir Outlook. Outlook

Ada beberapa antarmuka ekstensibilitas lain yang didefinisikan oleh Microsoft Office, seperti IBlogExtensibility, , EncryptionProviderdan SignatureProvider. Visual Studio tidak mendukung penerapan antarmuka ini dalam Add-in VSTO yang dibuat dengan menggunakan templat proyek Office.

Menggunakan antarmuka ekstensibilitas

Untuk menyesuaikan fitur UI dengan menggunakan antarmuka ekstensibilitas, terapkan antarmuka yang sesuai di proyek Add-in VSTO Anda. Kemudian, ambil alih RequestService metode untuk mengembalikan instans kelas yang mengimplementasikan antarmuka.

Untuk contoh aplikasi yang menunjukkan cara mengimplementasikan IRibbonExtensibilityantarmuka , , ICustomTaskPaneConsumerdan FormRegionStartup dalam Add-in VSTO untuk Outlook, lihat Sampel Manajer UI dalam sampel pengembangan Office.

Contoh penerapan antarmuka ekstensibilitas

Contoh kode berikut menunjukkan implementasi ICustomTaskPaneConsumer sederhana antarmuka untuk membuat panel tugas kustom. Contoh ini mendefinisikan dua kelas:

  • Kelas TaskPaneHelper mengimplementasikan ICustomTaskPaneConsumer untuk membuat dan menampilkan panel tugas kustom.

  • Kelas menyediakan TaskPaneUI UI panel tugas. Atribut untuk TaskPaneUI kelas membuat kelas terlihat oleh COM, yang memungkinkan Microsoft aplikasi Office lications untuk menemukan kelas. Dalam contoh ini, UI adalah kosong UserControl, tetapi Anda dapat menambahkan kontrol dengan memodifikasi kode.

    Catatan

    Untuk mengekspos TaskPaneUI kelas ke COM, Anda juga harus mengatur properti Daftar untuk Interop COM untuk proyek.

    public class TaskPaneHelper : Office.ICustomTaskPaneConsumer
    {
        internal Office.CustomTaskPane taskPane;
    
        public void CTPFactoryAvailable(Office.ICTPFactory CTPFactoryInst)
        {
            if (CTPFactoryInst != null)
            {
                // Create a new task pane.
                taskPane = CTPFactoryInst.CreateCTP(
                    "Microsoft.Samples.Vsto.CS.TaskPaneUI",
                    "Contoso");
                taskPane.Visible = true;
            }
        }
    }
    
    [System.Runtime.InteropServices.ComVisible(true)]
    [System.Runtime.InteropServices.ProgId("Microsoft.Samples.Vsto.CS.TaskPaneUI")]
    [System.Runtime.InteropServices.Guid("FFA0920E-F7A5-453d-8AB2-249F4C25B4B2")]
    public class TaskPaneUI : UserControl
    {
    }
    

Untuk informasi selengkapnya tentang menerapkan ICustomTaskPaneConsumer, lihat Membuat panel tugas kustom di sistem Office 2007 dalam dokumentasi Microsoft Office.

Contoh penggantian metode RequestService

Contoh kode berikut menunjukkan cara mengambil alih RequestService metode untuk mengembalikan instans TaskPaneHelper kelas dari contoh kode sebelumnya. Ini memeriksa nilai parameter serviceGuid untuk menentukan antarmuka mana yang diminta, lalu mengembalikan objek yang mengimplementasikan antarmuka tersebut.

internal TaskPaneHelper taskPaneHelper1;

protected override object RequestService(Guid serviceGuid)
{
    if (serviceGuid == typeof(Office.ICustomTaskPaneConsumer).GUID)
    {
        if (taskPaneHelper1 == null)
        {
            taskPaneHelper1 = new TaskPaneHelper();
        }
        return taskPaneHelper1;
    }

    return base.RequestService(serviceGuid);
}