Membuat jendela alat multi-instans
Anda dapat memprogram jendela alat sehingga beberapa instans dapat terbuka secara bersamaan. Secara default, jendela alat hanya dapat membuka satu instans.
Saat Anda menggunakan jendela alat multi-instans, Anda dapat menampilkan beberapa sumber informasi terkait secara bersamaan. Misalnya, Anda dapat menempatkan kontrol multibaris TextBox di jendela alat multi-instans sehingga beberapa cuplikan kode tersedia secara bersamaan selama sesi pemrograman. Selain itu, misalnya, Anda dapat menempatkan DataGrid kontrol dan kotak daftar drop-down di jendela alat multi-instans sehingga beberapa sumber data real-time dapat dilacak secara bersamaan.
Membuat jendela alat dasar (instans tunggal)
Buat proyek bernama MultiInstanceToolWindow menggunakan templat VSIX, dan tambahkan templat item jendela alat kustom bernama MIToolWindow.
Catatan
Untuk informasi selengkapnya tentang membuat ekstensi dengan jendela alat, lihat Membuat ekstensi dengan jendela alat.
Membuat jendela alat multi-instans
Buka file MIToolWindowPackage.cs dan temukan atribut .
ProvideToolWindow
dan parameter , seperti yangMultiInstances=true
ditunjukkan dalam contoh berikut:[PackageRegistration(UseManagedResourcesOnly = true)] [InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)] // Info on this package for Help/About [ProvideMenuResource("Menus.ctmenu", 1)] [ProvideToolWindow(typeof(MultiInstanceToolWindow.MIToolWindow), MultiInstances = true)] [Guid(MIToolWindowPackage.PackageGuidString)] public sealed class MIToolWindowPackage : Package {. . .}
Dalam file MIToolWindowCommand.cs, temukan metode .
ShowToolWindos()
Dalam metode ini, panggil FindToolWindow metode dan atur benderanyacreate
kefalse
sehingga akan melakukan iterasi melalui instans jendela alat yang ada hingga tersediaid
ditemukan.Untuk membuat instans jendela alat, panggil FindToolWindow metode dan atur
id
ke nilai yang tersedia dan benderanyacreate
ketrue
.Secara default, nilai
id
parameter FindToolWindow metode adalah0
. Nilai ini membuat jendela alat instans tunggal. Agar lebih dari satu instans dihosting, setiap instans harus memiliki keunikannyaid
sendiri.Show Panggil metode pada IVsWindowFrame objek yang dikembalikan oleh Frame properti instans jendela alat.
Secara default,
ShowToolWindow
metode yang dibuat oleh templat item jendela alat membuat jendela alat instans tunggal. Contoh berikut menunjukkan cara mengubahShowToolWindow
metode untuk membuat beberapa instans.private void ShowToolWindow(object sender, EventArgs e) { for (int i = 0; i < 10; i++) { ToolWindowPane window = this.package.FindToolWindow(typeof(MIToolWindow), i, false); if (window == null) { // Create the window with the first free ID. window = (ToolWindowPane)this.package.FindToolWindow(typeof(MIToolWindow), i, true); if ((null == window) || (null == window.Frame)) { throw new NotSupportedException("Cannot create tool window"); } IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame; Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(windowFrame.Show()); break; } } }