İzlenecek yol: İçerik denetimlerini kullanarak şablon oluşturma
Bu kılavuzda, Microsoft Office Word şablonunda yapılandırılmış ve yeniden kullanılabilir içerik oluşturmak için içerik denetimlerini kullanan belge düzeyinde özelleştirmenin nasıl oluşturulacağı gösterilmektedir.
Şunlar için geçerlidir: Bu konudaki bilgiler Word için belge düzeyi projeleri için geçerlidir. Daha fazla bilgi için bkz. Office uygulaması ve proje türüne göre kullanılabilen özellikler.
Word, yapı taşları adlı yeniden kullanılabilir belge bölümlerinden oluşan bir koleksiyon oluşturmanıza olanak tanır. Bu kılavuzda iki tablonun yapı taşları olarak nasıl oluşturulacağı gösterilmektedir. Her tablo, düz metin veya tarihler gibi farklı içerik türlerini barındırabilen çeşitli içerik denetimleri içerir. Tablolardan biri çalışanla ilgili bilgileri, diğer tablo ise müşteri geri bildirimlerini içerir.
Şablondan bir belge oluşturduktan sonra, şablonda kullanılabilir yapı taşları görüntüleyen birkaç BuildingBlockGalleryContentControl nesne kullanarak tablolardan birini belgeye ekleyebilirsiniz.
Bu izlenecek yol aşağıdaki görevleri gösterir:
Tasarım zamanında word şablonunda içerik denetimleri içeren tablolar oluşturma.
Birleşik giriş kutusu içerik denetimini ve açılan liste içerik denetimini program aracılığıyla doldurma.
Kullanıcıların belirtilen tabloyu düzenlemesini engelleme.
Bir şablonun yapı taşı koleksiyonuna tablo ekleme.
Şablonda kullanılabilir yapı taşları görüntüleyen bir içerik denetimi oluşturma.
Not
Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazıları için farklı adlar veya konumlar gösterebilir. Sahip olduğunuz Visual Studio sürümü ve kullandığınız ayarlar bu öğeleri belirler. Daha fazla bilgi için bkz . IDE'yi kişiselleştirme.
Önkoşullar
Bu izlenecek yolu tamamlamak için aşağıdaki bileşenlere ihtiyacınız vardır:
Microsoft Office geliştirici araçlarını içeren bir Visual Studio sürümü. Daha fazla bilgi için bkz . Office çözümleri geliştirmek için bilgisayar yapılandırma.
Microsoft Word.
Yeni bir Word şablon projesi oluşturma
Kullanıcıların kolayca kendi kopyalarını oluşturabilmesi için bir Word şablonu oluşturun.
Yeni bir Word şablon projesi oluşturmak için
MyBuildingBlockTemplate adlı bir Word şablon projesi oluşturun. Sihirbazda, çözümde yeni bir belge oluşturun. Daha fazla bilgi için bkz . Nasıl yapılır: Visual Studio'da Office projeleri oluşturma.
Visual Studio, tasarımcıda yeni Word şablonunu açar ve MyBuildingBlockTemplate projesini Çözüm Gezgini ekler.
Çalışan tablosunu oluşturma
Kullanıcının bir çalışan hakkındaki bilgileri girebileceği dört farklı içerik denetimi türü içeren bir tablo oluşturun.
Çalışan tablosunu oluşturmak için
Visual Studio tasarımcısında barındırılan Word şablonunda, Şeritte Ekle sekmesine tıklayın.
Tablolar grubunda Tablo'ya tıklayın ve iki sütun ve dört satır içeren bir tablo ekleyin.
aşağıdaki sütuna benzemesi için ilk sütuna metin yazın:
Çalışan Adı İşe Alma Tarihi Başlık Resim İkinci sütundaki ilk hücreye tıklayın (Çalışan Adı'nın yanında).
Şeritte Geliştirici sekmesine tıklayın.
Not
Geliştirici sekmesi görünmüyorsa, önce bunu göstermeniz gerekir. Daha fazla bilgi için bkz . Nasıl yapılır: Şeritte geliştirici sekmesini gösterme.
Denetimler grubunda Metin düğmesinetıklayarak ilk hücreye bir PlainTextContentControlekleyin.
İkinci sütundaki ikinci hücreye tıklayın (İşe Alma Tarihi'nin yanında).
Denetimler grubunda, ikinci hücreye bir DatePickerContentControl eklemek için Tarih Seçici düğmesine tıklayın.
İkinci sütundaki üçüncü hücreye (Başlık'ın yanında) tıklayın.
Denetimler grubunda Birleşik Giriş Kutusu düğmesinetıklayarak üçüncü hücreye ekleyinComboBoxContentControl.
İkinci sütundaki son hücreye tıklayın (Resim'in yanında).
Denetimler grubunda Resim İçeriği Denetimi düğmesinetıklayarak son hücreye ekleyinPictureContentControl.
Müşteri geri bildirim tablosunu oluşturma
Kullanıcının müşteri geri bildirim bilgilerini girebileceği üç farklı içerik denetimi türü içeren bir tablo oluşturun.
Müşteri geri bildirim tablosunu oluşturmak için
Word şablonunda, daha önce eklediğiniz çalışan tablosundan sonraki satıra tıklayın ve yeni paragraf eklemek için Enter tuşuna basın.
Şeritte Ekle sekmesine tıklayın.
Tablolar grubunda Tablo'ya tıklayın ve iki sütun ve üç satır içeren bir tablo ekleyin.
aşağıdaki sütuna benzemesi için ilk sütuna metin yazın:
Müşteri Adı Memnuniyet Derecelendirmesi Açıklamalar İkinci sütunun ilk hücresine tıklayın (Müşteri Adı'nın yanında).
Şeritte Geliştirici sekmesine tıklayın.
Denetimler grubunda Metin düğmesinetıklayarak ilk hücreye bir PlainTextContentControlekleyin.
İkinci sütunun ikinci hücresine (Memnuniyet Derecelendirmesi'nin yanında) tıklayın.
Denetimler grubunda, ikinci hücreye eklemek DropDownListContentControl için Açılan Liste düğmesine tıklayın.
İkinci sütunun son hücresine tıklayın (Açıklamalar'ın yanında).
Denetimler grubunda Zengin Metin düğmesinetıklayarak son hücreye ekleyinRichTextContentControl.
Birleşik giriş kutusunu ve açılan listeyi program aracılığıyla doldurma
Visual Studio'daki Özellikler penceresini kullanarak içerik denetimlerini tasarım zamanında başlatabilirsiniz. Ayrıca bunları çalışma zamanında başlatabilirsiniz ve bu sayede ilk durumlarını dinamik olarak ayarlayabilirsiniz. Bu kılavuzda, bu nesnelerin nasıl çalıştığını görebilmek için ve DropDownListContentControl çalışma zamanındaki ComboBoxContentControl girdileri doldurmak için kodu kullanın.
İçerik denetimlerinin kullanıcı arabirimini program aracılığıyla değiştirmek için
Çözüm Gezgini'da ThisDocument.cs veya ThisDocument.vb dosyasına sağ tıklayın ve ardından Kodu Görüntüle'ye tıklayın.
Aşağıdaki kodu
ThisDocument
sınıfına ekleyin. Bu kod, bu kılavuzda daha sonra kullanacağınız çeşitli nesneleri bildirir.Sınıfının yöntemine
ThisDocument_Startup
ThisDocument
aşağıdaki kodu ekleyin. Bu kod, tablolarda ve DropDownListContentControl öğesine girdiler ComboBoxContentControl ekler ve kullanıcı bunları düzenlemeden önce bu denetimlerin her birinde görüntülenen yer tutucu metni ayarlar.comboBoxContentControl1.PlaceholderText = "Choose a title, or enter your own"; comboBoxContentControl1.DropDownListEntries.Add("Engineer", "Engineer", 0); comboBoxContentControl1.DropDownListEntries.Add("Designer", "Designer", 1); comboBoxContentControl1.DropDownListEntries.Add("Manager", "Manager", 2); dropDownListContentControl1.PlaceholderText = "Choose a rating (1 lowest, 3 highest)"; dropDownListContentControl1.DropDownListEntries.Add("1", "1", 0); dropDownListContentControl1.DropDownListEntries.Add("2", "2", 1); dropDownListContentControl1.DropDownListEntries.Add("3", "3", 2);
Kullanıcıların çalışan tablosunu düzenlemesini engelleme
GroupContentControl Çalışan tablosunu korumak için daha önce bildirdiğiniz nesneyi kullanın. Kullanıcılar tabloyu koruduktan sonra tablodaki içerik denetimlerini düzenlemeye devam edebilir. Ancak, ilk sütundaki metni düzenleyemez veya tabloyu satır ve sütun ekleme veya silme gibi başka şekillerde değiştiremezler. Belgenin bir GroupContentControl bölümünü korumak için kullanma hakkında daha fazla bilgi için bkz . İçerik denetimleri.
Kullanıcıların çalışan tablosunu düzenlemesini engellemek için
Önceki adımda eklediğiniz koddan
ThisDocument_Startup
sonra sınıfının yöntemineThisDocument
aşağıdaki kodu ekleyin. Bu kod, daha önce bildirdiğiniz nesnenin GroupContentControl içine tablo koyarak kullanıcıların çalışan tablosunu düzenlemesini engeller.
Tabloları yapı taşı koleksiyonuna ekleme
Kullanıcıların, oluşturduğunuz tabloları belgeye ekleyebilmesi için tabloları şablondaki belge yapı taşları koleksiyonuna ekleyin. Belge yapı taşları hakkında daha fazla bilgi için bkz . İçerik denetimleri.
Tabloları şablondaki yapı taşları içine eklemek için
Önceki adımda eklediğiniz koddan
ThisDocument_Startup
sonra sınıfının yöntemineThisDocument
aşağıdaki kodu ekleyin. Bu kod, tabloları içeren yeni yapı taşları, şablondaki yeniden kullanılabilir tüm yapı taşları içeren Microsoft.Office.Interop.Word.BuildingBlockEntries koleksiyonuna ekler. Yeni yapı taşları, Çalışan ve Müşteri Bilgileri adlı yeni bir kategoride tanımlanır ve yapı taşı türüneMicrosoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1
atanır.Word.Template template1 = this.AttachedTemplate as Word.Template; if (template1 != null) { object description = null; template1.BuildingBlockEntries.Add("Employee Table", Word.WdBuildingBlockTypes.wdTypeCustom1, "Employee and Customer Information", this.Tables[1].Range, ref description, Word.WdDocPartInsertOptions.wdInsertContent); template1.BuildingBlockEntries.Add("Customer Table", Word.WdBuildingBlockTypes.wdTypeCustom1, "Employee and Customer Information", this.Tables[2].Range, ref description, Word.WdDocPartInsertOptions.wdInsertContent); }
Önceki adımda eklediğiniz koddan
ThisDocument_Startup
sonra sınıfının yöntemineThisDocument
aşağıdaki kodu ekleyin. Bu kod, tabloları şablondan siler. Tabloları şablondaki yeniden kullanılabilir yapı taşları galerisine eklediğiniz için tablolar artık gerekli değildir. Kod, korumalı çalışan tablosunun silinebilmesi için önce belgeyi tasarım moduna alır.
Yapı taşları görüntüleyen bir içerik denetimi oluşturma
Daha önce oluşturduğunuz yapı taşları (yani tablolar) için erişim sağlayan bir içerik denetimi oluşturun. Kullanıcılar bu denetime tıklayarak tabloları belgeye ekleyebilir.
Yapı taşları görüntüleyen bir içerik denetimi oluşturmak için
Önceki adımda eklediğiniz koddan
ThisDocument_Startup
sonra sınıfının yöntemineThisDocument
aşağıdaki kodu ekleyin. Bu kod, BuildingBlockGalleryContentControl daha önce bildirdiğiniz nesneyi başlatır. , BuildingBlockGalleryContentControl Çalışan ve Müşteri Bilgileri kategorisinde tanımlanan ve yapı taşı türüneMicrosoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1
sahip tüm yapı taşları görüntüler.buildingBlockControl1 = this.Controls.AddBuildingBlockGalleryContentControl( this.Paragraphs[1].Range, "buildingBlockControl1"); buildingBlockControl1.BuildingBlockCategory = "Employee and Customer Information"; buildingBlockControl1.BuildingBlockType = Word.WdBuildingBlockTypes.wdTypeCustom1; buildingBlockControl1.PlaceholderText = "Choose your first building block"; buildingBlockControl2 = this.Controls.AddBuildingBlockGalleryContentControl( this.Paragraphs[2].Range, "buildingBlockControl2"); buildingBlockControl2.BuildingBlockCategory = "Employee and Customer Information"; buildingBlockControl2.BuildingBlockType = Word.WdBuildingBlockTypes.wdTypeCustom1; buildingBlockControl2.PlaceholderText = "Choose your second building block";
Projeyi test etme
Kullanıcılar, çalışan tablosunu veya müşteri geri bildirim tablosunu eklemek için belgedeki yapı taşı galerisi denetimlerine tıklayabilir. Kullanıcılar her iki tablodaki içerik denetimlerine yanıt yazabilir veya yanıt seçebilir. Kullanıcılar müşteri geri bildirim tablosunun diğer bölümlerini değiştirebilir, ancak çalışan tablosunun diğer bölümlerini değiştirememeleri gerekir.
Çalışan tablosunu test etmek için
Projeyi çalıştırmak için F5 tuşuna basın.
İlk yapı taşı galerisi içerik denetimini görüntülemek için İlk yapı taşınızı seçin'e tıklayın.
Denetimde Özel Galeri 1 başlığının yanındaki açılan oka tıklayın ve Çalışan Tablosu'nu seçin.
Çalışan Adı hücresinin sağındaki hücreye tıklayın ve bir ad yazın.
Bu hücreye yalnızca metin ekleyebildiğinizi doğrulayın. , PlainTextContentControl kullanıcıların resim veya tablo gibi diğer içerik türlerini değil yalnızca metin eklemesini sağlar.
İşe Alma Tarihi hücresinin sağındaki hücreye tıklayın ve tarih seçicide bir tarih seçin.
Başlık hücresinin sağındaki hücreye tıklayın ve birleşik giriş kutusundaki iş başlıklarından birini seçin.
İsteğe bağlı olarak, listede olmayan bir iş unvanının adını yazın. Bunun nedeni, kullanıcıların girdi listesinden seçim veya kendi girdilerini yazmalarına olanak sağladığından mümkündür ComboBoxContentControl .
Resim hücresinin sağındaki hücredeki simgeye tıklayın ve görüntülemek için bir resme göz atın.
Tabloya satır veya sütun eklemeyi deneyin ve tablodaki satırları ve sütunları silmeyi deneyin. Tabloyu değiştiremediğinizi doğrulayın. , GroupContentControl herhangi bir değişiklik yapmanızı engeller.
Müşteri geri bildirim tablosunu test etmek için
İkinci yapı taşı galerisi içerik denetimini görüntülemek için İkinci yapı taşınızı seçin'e tıklayın.
Denetimde Özel Galeri 1 başlığının yanındaki açılan oka tıklayın ve Müşteri Tablosu'nu seçin.
Müşteri Adı hücresinin sağındaki hücreye tıklayın ve bir ad yazın.
Memnuniyet Derecelendirmesi hücresinin sağındaki hücreye tıklayın ve kullanılabilir seçeneklerden birini belirleyin.
Kendi girdinizi yazamadığınızı doğrulayın. , DropDownListContentControl kullanıcıların yalnızca girdi listesinden seçim yapmasına izin verir.
Açıklamalar hücresinin sağındaki hücreye tıklayın ve bazı açıklamalar yazın.
İsteğe bağlı olarak, resim veya ekli tablo gibi metin dışında bazı içerikler ekleyin. Bunun nedeni, kullanıcıların metin dışında içerik eklemesine olanak sağladığından mümkündür RichTextContentControl .
Tabloya satır veya sütun ekleyebildiğinizi ve tablodaki satır ve sütunları silebileceğinizi doğrulayın. Tabloyu içine GroupContentControlkoyarak korumadığınız için bu mümkündür.
Şablonu kapatın.
Sonraki adımlar
Bu konudan içerik denetimlerini kullanma hakkında daha fazla bilgi edinebilirsiniz:
- İçerik denetimlerini, belgeye eklenmiş özel XML bölümleri olarak da adlandırılan XML parçalarına bağlayın. Daha fazla bilgi için bkz . İzlenecek yol: İçerik denetimlerini özel XML bölümlerine bağlama.
İlgili içerik
- Genişletilmiş nesneler kullanarak Word'i otomatikleştirme
- İçerik denetimleri
- Nasıl yapılır: Word belgelerine içerik denetimleri ekleme
- Nasıl yapılır: İçerik denetimlerini kullanarak belgelerin bölümlerini koruma
- Konak öğelerine ve konak denetimlerine genel bakış
- Konak öğelerinin ve konak denetimlerinin programlı sınırlamaları
- Çalışma zamanında Office belgelerine denetim ekleme