İ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

  1. 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

  1. Visual Studio tasarımcısında barındırılan Word şablonunda, Şeritte Ekle sekmesine tıklayın.

  2. Tablolar grubunda Tablo'ya tıklayın ve iki sütun ve dört satır içeren bir tablo ekleyin.

  3. aşağıdaki sütuna benzemesi için ilk sütuna metin yazın:

    Çalışan Adı
    İşe Alma Tarihi
    Başlık
    Resim
  4. İkinci sütundaki ilk hücreye tıklayın (Çalışan Adı'nın yanında).

  5. Ş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.

  6. Denetimler grubunda Metin düğmesinePlainTextContentControltıklayarak ilk hücreye bir PlainTextContentControlekleyin.

  7. İkinci sütundaki ikinci hücreye tıklayın (İşe Alma Tarihi'nin yanında).

  8. Denetimler grubunda, ikinci hücreye bir DatePickerContentControl eklemek için Tarih Seçici düğmesine DatePickerContentControl tıklayın.

  9. İkinci sütundaki üçüncü hücreye (Başlık'ın yanında) tıklayın.

  10. Denetimler grubunda Birleşik Giriş Kutusu düğmesineComboBoxContentControltıklayarak üçüncü hücreye ekleyinComboBoxContentControl.

  11. İkinci sütundaki son hücreye tıklayın (Resim'in yanında).

  12. Denetimler grubunda Resim İçeriği Denetimi düğmesinePictureContentControltı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

  1. 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.

  2. Şeritte Ekle sekmesine tıklayın.

  3. Tablolar grubunda Tablo'ya tıklayın ve iki sütun ve üç satır içeren bir tablo ekleyin.

  4. aşağıdaki sütuna benzemesi için ilk sütuna metin yazın:

    Müşteri Adı
    Memnuniyet Derecelendirmesi
    Açıklamalar
  5. İkinci sütunun ilk hücresine tıklayın (Müşteri Adı'nın yanında).

  6. Şeritte Geliştirici sekmesine tıklayın.

  7. Denetimler grubunda Metin düğmesinePlainTextContentControltıklayarak ilk hücreye bir PlainTextContentControlekleyin.

  8. İkinci sütunun ikinci hücresine (Memnuniyet Derecelendirmesi'nin yanında) tıklayın.

  9. Denetimler grubunda, ikinci hücreye eklemek DropDownListContentControl için Açılan Liste düğmesine DropDownListContentControl tıklayın.

  10. İkinci sütunun son hücresine tıklayın (Açıklamalar'ın yanında).

  11. Denetimler grubunda Zengin Metin düğmesineRichTextContentControltı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

  1. Çö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.

  2. Aşağıdaki kodu ThisDocument sınıfına ekleyin. Bu kod, bu kılavuzda daha sonra kullanacağınız çeşitli nesneleri bildirir.

    private Microsoft.Office.Tools.Word.GroupContentControl groupControl1;
    private Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl buildingBlockControl1;
    private Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl buildingBlockControl2;
    
  3. Sınıfının yöntemine ThisDocument_StartupThisDocument 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

  1. Önceki adımda eklediğiniz koddan ThisDocument_Startup sonra sınıfının yöntemine ThisDocument 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.

    this.Tables[1].Range.Select();
    groupControl1 = this.Controls.AddGroupContentControl("groupControl1");
    

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

  1. Önceki adımda eklediğiniz koddan ThisDocument_Startup sonra sınıfının yöntemine ThisDocument 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üne Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1atanı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);
    }
    
  2. Önceki adımda eklediğiniz koddan ThisDocument_Startup sonra sınıfının yöntemine ThisDocument 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.

    if (!this.FormsDesign)
    {
        this.ToggleFormsDesign();
    }
    this.Tables[2].Delete();
    this.Tables[1].Delete();
    this.ToggleFormsDesign();
    

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

  1. Önceki adımda eklediğiniz koddan ThisDocument_Startup sonra sınıfının yöntemine ThisDocument 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üne Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1sahip 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

  1. Projeyi çalıştırmak için F5 tuşuna basın.

  2. İlk yapı taşı galerisi içerik denetimini görüntülemek için İlk yapı taşınızı seçin'e tıklayın.

  3. Denetimde Özel Galeri 1 başlığının yanındaki açılan oka tıklayın ve Çalışan Tablosu'nu seçin.

  4. Ç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.

  5. İşe Alma Tarihi hücresinin sağındaki hücreye tıklayın ve tarih seçicide bir tarih seçin.

  6. 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 .

  7. Resim hücresinin sağındaki hücredeki simgeye tıklayın ve görüntülemek için bir resme göz atın.

  8. 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

  1. İkinci yapı taşı galerisi içerik denetimini görüntülemek için İkinci yapı taşınızı seçin'e tıklayın.

  2. Denetimde Özel Galeri 1 başlığının yanındaki açılan oka tıklayın ve Müşteri Tablosu'nu seçin.

  3. Müşteri Adı hücresinin sağındaki hücreye tıklayın ve bir ad yazın.

  4. 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.

  5. 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 .

  6. 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.

  7. Şablonu kapatın.

Sonraki adımlar

Bu konudan içerik denetimlerini kullanma hakkında daha fazla bilgi edinebilirsiniz: