Panduan: Menambahkan kontrol ke dokumen pada waktu proses di Add-in VSTO
Anda bisa menambahkan kontrol ke dokumen Microsoft Office Word yang terbuka dengan menggunakan Add-in VSTO. Panduan ini menunjukkan cara menggunakan pita untuk memungkinkan pengguna menambahkan Button atau RichTextContentControl ke dokumen.
Berlaku untuk: Informasi dalam topik ini berlaku untuk proyek Add-in VSTO untuk Word 2010. Untuk informasi selengkapnya, lihat Fitur yang Tersedia oleh Aplikasi Office dan Jenis Proyek.
Panduan ini mengilustrasikan tugas-tugas berikut:
Membuat proyek Add-in Word VSTO baru.
Menyediakan antarmuka pengguna (UI) untuk menambahkan kontrol ke dokumen.
Menambahkan kontrol ke dokumen pada waktu proses.
Menghapus kontrol dari dokumen.
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.
Prasyarat
Anda memerlukan komponen berikut untuk menyelesaikan panduan ini:
Edisi Visual Studio yang menyertakan alat pengembang Microsoft Office. Untuk informasi selengkapnya, lihat Mengonfigurasi komputer untuk mengembangkan solusi Office.
Word 2013 atau Word 2010 .
Membuat proyek Add-in Word baru
Mulailah dengan membuat proyek Add-in Word VSTO.
Untuk membuat proyek Add-in Word VSTO baru
Buat proyek Add-in VSTO untuk Word dengan nama WordDynamicControls. Untuk informasi selengkapnya, lihat Cara: Membuat proyek Office di Visual Studio.
Tambahkan referensi ke rakitan Microsoft.Office.Tools.Word.v4.0.Utilities.dll . Referensi ini diperlukan untuk menambahkan kontrol Formulir Windows secara terprogram ke dokumen nanti dalam panduan ini.
Menyediakan UI untuk menambahkan kontrol ke dokumen
Tambahkan tab kustom ke Pita di Word. Pengguna dapat memilih kotak centang pada tab untuk menambahkan kontrol ke dokumen.
Untuk menyediakan UI untuk menambahkan kontrol ke dokumen
Pada menu Proyek, klik Tambahkan Item Baru.
Dalam kotak dialog Tambahkan Item Baru, pilih Pita (Visual Designer).
Ubah nama Pita baru menjadi MyRibbon, dan klik Tambahkan.
File MyRibbon.cs atau MyRibbon.vb terbuka di Perancang Pita dan menampilkan tab dan grup default.
Di Perancang Pita, klik grup grup1 .
Di jendela Properti , ubah properti Label untuk grup1 menjadi Tambahkan Kontrol.
Dari tab Kontrol Pita Office dari Kotak Alat, seret kontrol Kotak Centang ke grup1.
Klik Centang Kotak1 untuk memilihnya.
Di jendela Properti , ubah properti berikut ini.
Properti Nilai Nama tambahkanButtonCheckBox Label Tombol Tambahkan Tambahkan kotak centang kedua ke grup1, lalu ubah properti berikut.
Properti Nilai Nama addRichTextCheckBox Label Tambahkan Kontrol Teks Kaya Di Perancang Pita, klik ganda Tombol Tambahkan.
Penanganan Click aktivitas kotak centang Tambahkan Tombol terbuka di Editor Kode.
Kembali ke Perancang Pita, dan klik ganda Tambahkan Kontrol Teks Kaya.
Penanganan Click aktivitas kotak centang Tambahkan Kontrol Teks Kaya terbuka di Editor Kode.
Nantinya dalam panduan ini, Anda akan menambahkan kode ke penanganan aktivitas ini untuk menambahkan dan menghapus kontrol pada dokumen aktif.
Menambahkan dan menghapus kontrol pada dokumen aktif
Dalam kode Add-in VSTO, Anda harus mengonversi dokumen aktif menjadi Documentitem host sebelum dapat menambahkan kontrol. Di solusi Office, kontrol terkelola hanya dapat ditambahkan ke item host, yang bertindak sebagai kontainer untuk kontrol. Dalam proyek Add-in VSTO, item host dapat dibuat pada waktu proses dengan menggunakan GetVstoObject
metode .
Tambahkan metode ke ThisAddIn
kelas yang dapat dipanggil untuk menambahkan atau menghapus Button atau RichTextContentControl pada dokumen aktif. Nanti dalam panduan ini, Anda akan memanggil metode ini dari Click penanganan aktivitas kotak centang pada Pita.
Untuk menambahkan dan menghapus kontrol pada dokumen aktif
Di Penjelajah Solusi, klik ganda ThisAddIn.cs atau ThisAddIn.vb untuk membuka file di Editor Kode.
Tambahkan kode berikut ke kelas
ThisAddIn
. Kode ini mendeklarasikan Button dan RichTextContentControl objek yang mewakili kontrol yang akan ditambahkan ke dokumen.Tambahkan metode berikut ke kelas
ThisAddIn
. Ketika pengguna mengklik kotak centang Tambahkan Tombol pada Pita, metode ini menambahkan Button ke pilihan saat ini pada dokumen jika kotak centang dipilih, atau menghapus jika kotak centang dikosongkan Button .internal void ToggleButtonOnDocument() { Document vstoDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument); string name = "MyButton"; if (Globals.Ribbons.MyRibbon.addButtonCheckBox.Checked) { Word.Selection selection = this.Application.Selection; if (selection != null && selection.Range != null) { button = vstoDocument.Controls.AddButton( selection.Range, 100, 30, name); } } else { vstoDocument.Controls.Remove(name); } }
Tambahkan metode berikut ke kelas
ThisAddIn
. Ketika pengguna mengklik kotak centang Tambahkan Kontrol Teks Kaya pada Pita, metode ini menambahkan RichTextContentControl ke pilihan saat ini pada dokumen jika kotak centang dipilih, atau menghapus jika kotak centang dikosongkan RichTextContentControl .internal void ToggleRichTextControlOnDocument() { Document vstoDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument); string name = "MyRichTextBoxControl"; if (Globals.Ribbons.MyRibbon.addRichTextCheckBox.Checked) { Word.Selection selection = this.Application.Selection; if (selection != null && selection.Range != null) { richTextControl = vstoDocument.Controls.AddRichTextContentControl( selection.Range, name); } } else { vstoDocument.Controls.Remove(name); } }
Hapus kontrol Tombol saat dokumen disimpan
Formulir Windows kontrol tidak bertahan ketika dokumen disimpan lalu ditutup. Namun, pembungkus ActiveX untuk setiap kontrol tetap berada dalam dokumen, dan batas pembungkus ini dapat dilihat oleh pengguna akhir saat dokumen dibuka kembali. Ada beberapa cara untuk membersihkan kontrol Formulir Windows yang dibuat secara dinamis di Add-in VSTO. Dalam panduan ini, Anda secara terprogram menghapus Button kontrol saat dokumen disimpan.
Untuk menghapus kontrol Tombol saat dokumen disimpan
Dalam file kode ThisAddIn.cs atau ThisAddIn.vb, tambahkan metode berikut ke
ThisAddIn
kelas . Metode ini adalah penanganan aktivitas untuk peristiwa tersebut DocumentBeforeSave . Jika dokumen yang disimpan memiliki Document item host yang terkait dengannya, penanganan aktivitas mendapatkan item host dan menghapus Button kontrol, jika ada.private void Application_DocumentBeforeSave(Word.Document Doc, ref bool SaveAsUI, ref bool Cancel) { bool isExtended = Globals.Factory.HasVstoObject(Doc); if (isExtended) { Microsoft.Office.Tools.Word.Document vstoDocument = Globals.Factory.GetVstoObject(Doc); if (vstoDocument.Controls.Contains(button)) { vstoDocument.Controls.Remove(button); Globals.Ribbons.MyRibbon.addButtonCheckBox.Checked = false; } } }
Di C#, tambahkan kode berikut ke penanganan
ThisAddIn_Startup
aktivitas. Kode ini diperlukan di C# untuk menyambungkanApplication_DocumentBeforeSave
penanganan aktivitas dengan DocumentBeforeSave peristiwa.this.Application.DocumentBeforeSave += new Word.ApplicationEvents4_DocumentBeforeSaveEventHandler( Application_DocumentBeforeSave);
Menambahkan dan menghapus kontrol saat pengguna mengklik kotak centang pada pita
Terakhir, ubah Click penanganan aktivitas kotak centang yang Anda tambahkan ke pita untuk menambahkan atau menghapus kontrol pada dokumen.
Untuk menambahkan atau menghapus kontrol saat pengguna mengklik kotak centang pada pita
Dalam file kode MyRibbon.cs atau MyRibbon.vb, ganti penanganan peristiwa dan
addRichTextCheckBox_Click
yang dihasilkanaddButtonCheckBox_Click
dengan kode berikut. Kode ini mendefinisikan ulang penanganan aktivitas ini untuk memanggilToggleButtonOnDocument
metode danToggleRichTextControlOnDocument
yang Anda tambahkan keThisAddIn
kelas sebelumnya dalam panduan ini.
Menguji solusi
Tambahkan kontrol ke dokumen dengan memilihnya dari tab kustom pada Pita. Saat Anda menyimpan dokumen, Button kontrol akan dihapus.
Untuk menguji solusinya.
Tekan F5 untuk menjalankan proyek Anda.
Di dokumen aktif, tekan Enter beberapa kali untuk menambahkan paragraf kosong baru ke dokumen.
Pilih paragraf pertama.
Klik tab Add-In .
Di grup Tambahkan Kontrol, klik Tombol Tambahkan.
Tombol muncul di paragraf pertama.
Pilih paragraf terakhir.
Di grup Tambahkan Kontrol, klik Tambahkan Kontrol Teks Kaya.
Kontrol konten teks kaya ditambahkan ke paragraf terakhir.
Simpan dokumen.
Tombol dihapus dari dokumen.
Langkah berikutnya
Anda dapat mempelajari selengkapnya tentang kontrol di Add-in VSTO dari topik ini:
Untuk sampel yang menunjukkan cara menambahkan banyak tipe kontrol lain ke dokumen pada waktu proses dan membuat ulang kontrol saat dokumen dibuka kembali, lihat Sampel Kontrol Dinamis Add-In Word di sampel dan panduan pengembangan Office.
Untuk panduan yang menunjukkan cara menambahkan kontrol ke lembar kerja dengan menggunakan Add-in VSTO untuk Excel, lihat Panduan: Menambahkan kontrol ke lembar kerja pada waktu proses dalam proyek add-in VSTO.
Konten terkait
- Solusi Word
- Menambahkan kontrol ke dokumen Office pada waktu proses
- Mempertahankan kontrol dinamis di dokumen Office
- Cara: Menambahkan kontrol Formulir Windows ke dokumen Office
- Cara: Menambahkan kontrol konten ke dokumen Word
- Memperluas dokumen Word dan buku kerja Excel di Add-in VSTO pada waktu proses