Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Tabel dokumen yang sedang berjalan (RDT) mempertahankan hitungan dokumen yang terbuka dan kunci edit apa pun yang mereka miliki. Anda dapat menempatkan kunci edit pada dokumen di RDT saat diedit secara terprogram di latar belakang tanpa pengguna melihat dokumen terbuka di jendela dokumen. Fungsionalitas ini sering digunakan oleh desainer yang memodifikasi beberapa file melalui antarmuka pengguna grafis.
Skenario pemegang kunci dokumen
File "a" memiliki ketergantungan pada file "b"
Pertimbangkan situasi di mana Anda menerapkan editor standar "A" untuk jenis file "a", dan setiap file jenis "a" memiliki referensi ke (atau dependensi pada) file jenis "b". Editor standar "B" ada untuk file jenis "b". Ketika editor "A" membuka file "a" ia mengambil referensi ke file "b" yang sesuai. File "b" tidak ditampilkan, tetapi editor "A" dapat memodifikasinya. Editor "A" mendapatkan referensi ke data dokumen file "b" dari FindAndLockDocument metode dan juga mempertahankan kunci edit pada file "b". Setelah editor "A" selesai memodifikasi file "b" Anda dapat mengurangi jumlah kunci edit pada file "b" dengan memanggil UnlockDocument metode . Anda dapat menghilangkan langkah ini jika Anda telah memanggil FindAndLockDocument metode dengan parameter dwRDTLockType
yang diatur ke _VSRDTFLAGS. RDT_NoLock.
File "b" dibuka oleh editor lain
Jika file "b" sudah dibuka oleh editor "B" ketika editor "A" mencoba membukanya, ada dua skenario terpisah untuk ditangani:
Jika file "b" terbuka di editor yang kompatibel, Anda harus memiliki editor "A" mendaftarkan kunci edit dokumen pada file "b" menggunakan RegisterDocumentLockHolder metode . Setelah editor Anda "A" selesai memodifikasi file "b", batalkan pendaftaran kunci edit dokumen menggunakan UnregisterDocumentLockHolder metode .
Jika file "b" terbuka dengan cara yang tidak kompatibel, Anda dapat membiarkan upaya pembukaan file "b" oleh editor "A" gagal, atau Anda dapat membiarkan tampilan yang terkait dengan editor "A" sebagian terbuka dan menampilkan pesan kesalahan yang sesuai. Pesan kesalahan harus menginstruksikan pengguna untuk menutup file "b" di editor yang tidak kompatibel dan kemudian membuka kembali file "a" menggunakan editor "A". Anda juga dapat menerapkan metode QueryCloseRunningDocument Visual Studio SDK untuk meminta pengguna menutup file "b" yang terbuka di editor yang tidak kompatibel. Jika pengguna menutup file "b", pembukaan file "a" di editor "A" berlanjut secara normal.
Pertimbangan kunci edit dokumen tambahan
Anda mendapatkan perilaku yang berbeda jika editor "A" adalah satu-satunya editor yang memiliki kunci edit dokumen pada file "b" daripada yang Anda lakukan jika editor "B" juga memegang kunci edit dokumen pada file "b". Di Visual Studio, Class Designer adalah contoh perancang visual yang tidak menyimpan kunci edit pada file kode terkait. Artinya, jika pengguna memiliki diagram kelas yang terbuka dalam tampilan desain dan file kode terkait terbuka secara bersamaan, dan jika pengguna memodifikasi file kode tetapi tidak menyimpan perubahan, perubahan juga hilang ke file diagram kelas (.cd). Jika Perancang Kelas memiliki satu-satunya kunci edit dokumen pada file kode, pengguna tidak diminta untuk menyimpan perubahan saat menutup file kode. IDE meminta pengguna untuk menyimpan perubahan hanya setelah pengguna menutup Perancang Kelas. Perubahan yang disimpan tercermin dalam kedua file. Jika Perancang Kelas dan editor file kode memegang kunci edit dokumen pada file kode, maka pengguna diminta untuk menyimpan saat menutup file kode atau formulir. Pada saat itu perubahan yang disimpan tercermin dalam formulir dan file kode. Untuk informasi selengkapnya tentang diagram kelas, lihat Bekerja dengan diagram kelas (Perancang Kelas).
Perhatikan bahwa jika Anda perlu menempatkan kunci edit pada dokumen untuk non-editor, Anda harus menerapkan IVsDocumentLockHolder antarmuka.
Sering kali perancang UI yang memodifikasi file kode secara terprogram membuat perubahan pada lebih dari satu file. Dalam kasus seperti ituSaveItemsViaDlg, metode menangani penyimpanan satu atau beberapa dokumen dengan cara kotak dialog Ingin menyimpan perubahan ke item berikut ini?