Word belgelerine İçerik denetimleri ekleme

Belge düzeyindeki Word projelerinde, tasarım zamanında veya çalışma zamanında projenizdeki belgeye içerik denetimleri ekleyebilirsiniz. Word VSTO Eklenti projelerinde, çalışma zamanında herhangi bir açık belgeye içerik denetimleri ekleyebilirsiniz.

Şunlar için geçerlidir: Bu konudaki bilgiler, Word için belge düzeyi projeler ve VSTO Eklenti projeleri için geçerlidir. Daha fazla bilgi için bkz. Office uygulaması ve proje türüne göre kullanılabilen özellikler.

Bu konuda aşağıdaki görevler açıklanmaktadır:

Tasarım zamanında İçerik denetimleri ekleme

Tasarım zamanında belge düzeyindeki bir projede belgeye içerik denetimleri eklemenin çeşitli yolları vardır:

  • Araç Kutusu'nun Word Denetimleri sekmesinden içerik denetimi ekleyin.

  • Belgenize, Word'de yerel içerik denetimi eklediğiniz şekilde içerik denetimi ekleyin.

  • Veri Kaynakları penceresinden belgenize bir içerik denetimi sürükleyin. Bu, denetim oluşturulduğunda denetimi verilere bağlamak istediğinizde kullanışlıdır. Daha fazla bilgi için bkz . Nasıl yapılır: Belgeleri nesnelerden alınan verilerle doldurma ve Nasıl yapılır: Belgeleri veritabanındaki verilerle doldurma.

    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.

Araç Kutusu'nu kullanarak belgeye içerik denetimi eklemek için

  1. Visual Studio tasarımcısında barındırılan belgede, imleci içerik denetimini eklemek istediğiniz yere getirin veya içerik denetiminin değiştirmesini istediğiniz metni seçin.

  2. Araç Kutusu'nu açın ve Word Denetimleri sekmesine tıklayın.

  3. Denetimi aşağıdaki yollardan birini ekleyin:

    • Araç Kutusu'nda bir içerik denetimine çift tıklayın.

      veya

    • Araç Kutusu'nda bir içerik denetimine tıklayın ve enter tuşuna basın.

      veya

    • Araç Kutusu'ndan bir içerik denetimini belgeye sürükleyin. İçerik denetimi, fare işaretçisinin konumuna değil, belgedeki geçerli seçime eklenir.

Not

Araç Kutusu'nu kullanarak bir GroupContentControl ekleyemezsiniz. Yalnızca Word'de veya çalışma zamanında ekleyebilirsiniz GroupContentControl .

Not

Visual Studio, Araç Kutusu'nda onay kutusu içerik denetimi sağlamaz. Belgeye onay kutusu içerik denetimi eklemek için, program aracılığıyla bir ContentControl nesne oluşturmanız gerekir. Daha fazla bilgi için bkz . İçerik denetimleri.

Word'de belgeye içerik denetimi eklemek için

  1. Visual Studio tasarımcısında barındırılan belgede, imleci içerik denetimini eklemek istediğiniz yere getirin veya içerik denetiminin değiştirmesini istediğiniz metni seçin.

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

  3. Denetimler grubunda, eklemek istediğiniz içerik denetiminin simgesine tıklayın.

Belge düzeyinde bir projede çalışma zamanında içerik denetimleri ekleme

Projenizdeki sınıfın özelliğinin ThisDocument yöntemlerini Controls kullanarak çalışma zamanında belgenize program aracılığıyla içerik denetimleri ekleyebilirsiniz. Her yöntemin, aşağıdaki yollarla içerik denetimi eklemek için kullanabileceğiniz üç aşırı yüklemesi vardır:

  • Geçerli seçime bir denetim ekleyin.

  • Belirtilen aralıkta bir denetim ekleyin.

  • Belgedeki yerel içerik denetimini temel alan bir denetim ekleyin.

    Dinamik olarak oluşturulan içerik denetimleri, belge kapatıldığında belgede kalıcı olmaz. Ancak, yerel içerik denetimi belgede kalır. Belgenin bir sonraki açışında yerel içerik denetimini temel alan bir içerik denetimini yeniden oluşturabilirsiniz. Daha fazla bilgi için bkz . Çalışma zamanında Office belgelerine denetim ekleme.

Not

Word 2010 projesindeki bir belgeye onay kutusu içerik denetimi eklemek için bir ContentControl nesne oluşturmanız gerekir. Daha fazla bilgi için bkz . İçerik denetimleri.

Geçerli seçime içerik denetimi eklemek için

  1. Ad Add<denetim sınıfına> sahip (ControlCollectionburada denetim sınıfı, eklemek istediğiniz içerik denetiminin sınıf adıdır, örneğin AddRichTextContentControl), ve yeni denetimin adı için tek bir parametresi olan bir yöntem kullanın.

    Aşağıdaki kod örneği, belgenin AddRichTextContentControl başına yeni RichTextContentControl bir eklemek için yöntemini kullanır. Bu kodu çalıştırmak için, kodu projenizdeki sınıfına ThisDocument ekleyin ve olay işleyicisinden yöntemini çağırın AddRichTextControlAtSelection ThisDocument_Startup .

    private Microsoft.Office.Tools.Word.RichTextContentControl richTextControl1;
    
    private void AddRichTextControlAtSelection()
    {
        this.Paragraphs[1].Range.InsertParagraphBefore();
        this.Paragraphs[1].Range.Select();
    
        richTextControl1 = this.Controls.AddRichTextContentControl("richTextControl1");
        richTextControl1.PlaceholderText = "Enter your first name";
    }
    

Belirtilen aralıkta içerik denetimi eklemek için

  1. Ad<Add denetim sınıfına> sahip bir ControlCollection yöntem kullanın (burada denetim sınıfı, eklemek istediğiniz içerik denetimi sınıfının adıdır, örneğin AddRichTextContentControl), ve parametresi Range vardır.

    Aşağıdaki kod örneği, belgenin AddRichTextContentControl başına yeni RichTextContentControl bir eklemek için yöntemini kullanır. Bu kodu çalıştırmak için, kodu projenizdeki sınıfına ThisDocument ekleyin ve olay işleyicisinden yöntemini çağırın AddRichTextControlAtRange ThisDocument_Startup .

    private Microsoft.Office.Tools.Word.RichTextContentControl richTextControl2;
    
    private void AddRichTextControlAtRange()
    {
        this.Paragraphs[1].Range.InsertParagraphBefore();
    
        richTextControl2 = this.Controls.AddRichTextContentControl(this.Paragraphs[1].Range,
            "richTextControl2");
        richTextControl2.PlaceholderText = "Enter your first name";
    }
    

Yerel içerik denetimini temel alan bir içerik denetimi eklemek için

  1. Ad<Add denetim sınıfına> sahip bir ControlCollection yöntem kullanın (burada denetim sınıfı, eklemek istediğiniz içerik denetimi sınıfının adıdır, örneğin AddRichTextContentControl), ve parametresi Microsoft.Office.Interop.Word.ContentControl vardır.

    Aşağıdaki kod örneği, belgedeki AddRichTextContentControl her yerel zengin metin denetimi için yeni RichTextContentControl bir oluşturma yöntemini kullanır. Bu kodu çalıştırmak için, kodu projenizdeki sınıfına ThisDocument ekleyin ve olay işleyicisinden yöntemini çağırın CreateRichTextControlsFromNativeControls ThisDocument_Startup .

    private System.Collections.Generic.List
        <Microsoft.Office.Tools.Word.RichTextContentControl> richTextControls;
    
    private void CreateRichTextControlsFromNativeControls()
    {
        if (this.ContentControls.Count <= 0)
            return;
    
        richTextControls = new System.Collections.Generic.List
            <Microsoft.Office.Tools.Word.RichTextContentControl>();
        int count = 0;
    
        foreach (Word.ContentControl nativeControl in this.ContentControls)
        {
            if (nativeControl.Type ==
                Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlRichText)
            {
                count++;
                Microsoft.Office.Tools.Word.RichTextContentControl tempControl =
                    this.Controls.AddRichTextContentControl(nativeControl,
                    "VSTORichTextControl" + count.ToString());
                richTextControls.Add(tempControl);
            }
        }
    }
    

VSTO Eklenti projesinde çalışma zamanında içerik denetimleri ekleme

VSTO Eklentisi kullanarak çalışma zamanında açık olan herhangi bir belgeye program aracılığıyla içerik denetimleri ekleyebilirsiniz. Bunu yapmak için, açık bir belgeyi temel alan bir Document konak öğesi oluşturun ve ardından bu konak öğesinin Controls özelliğinin yöntemlerini kullanın. Her yöntemin, aşağıdaki yollarla içerik denetimi eklemek için kullanabileceğiniz üç aşırı yüklemesi vardır:

  • Geçerli seçime bir denetim ekleyin.

  • Belirtilen aralıkta bir denetim ekleyin.

  • Belgedeki yerel içerik denetimini temel alan bir denetim ekleyin.

    Dinamik olarak oluşturulan içerik denetimleri, belge kapatıldığında belgede kalıcı olmaz. Ancak, yerel içerik denetimi belgede kalır. Belgenin bir sonraki açışında yerel içerik denetimini temel alan bir içerik denetimini yeniden oluşturabilirsiniz. Daha fazla bilgi için bkz . Office belgelerinde dinamik denetimleri kalıcı hale getir.

    VSTO Eklenti projelerinde konak öğeleri oluşturma hakkında daha fazla bilgi için bkz . Çalışma zamanında VSTO Eklentilerinde Word belgelerini ve Excel çalışma kitaplarını genişletme.

Not

Belgeye onay kutusu içerik denetimi eklemek için bir ContentControl nesne oluşturmanız gerekir. Daha fazla bilgi için bkz . İçerik denetimleri.

Geçerli seçime içerik denetimi eklemek için

  1. Ad Add<denetim sınıfına> sahip (ControlCollectionburada denetim sınıfı, eklemek istediğiniz içerik denetiminin sınıf adıdır, örneğin AddRichTextContentControl), ve yeni denetimin adı için tek bir parametresi olan bir yöntem kullanın.

    Aşağıdaki kod örneği, etkin belgenin AddRichTextContentControl başına yeni RichTextContentControl bir eklemek için yöntemini kullanır. Bu kodu çalıştırmak için, kodu projenizdeki sınıfına ThisAddIn ekleyin ve olay işleyicisinden yöntemini çağırın AddRichTextControlAtSelection ThisAddIn_Startup .

    private Microsoft.Office.Tools.Word.RichTextContentControl richTextControl1;
    
    private void AddRichTextControlAtSelection()
    {
        Word.Document currentDocument = this.Application.ActiveDocument;
        currentDocument.Paragraphs[1].Range.InsertParagraphBefore();
        currentDocument.Paragraphs[1].Range.Select();
    
        Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
    
        richTextControl1 = extendedDocument.Controls.AddRichTextContentControl("richTextControl1");
        richTextControl1.PlaceholderText = "Enter your first name";
    }
    

Belirtilen aralıkta içerik denetimi eklemek için

  1. Ad<Add denetim sınıfına> sahip bir ControlCollection yöntem kullanın (burada denetim sınıfı, eklemek istediğiniz içerik denetimi sınıfının adıdır, örneğin AddRichTextContentControl), ve parametresi Range vardır.

    Aşağıdaki kod örneği, etkin belgenin AddRichTextContentControl başına yeni RichTextContentControl bir eklemek için yöntemini kullanır. Bu kodu çalıştırmak için, kodu projenizdeki sınıfına ThisAddIn ekleyin ve olay işleyicisinden yöntemini çağırın AddRichTextControlAtRange ThisAddIn_Startup .

    private Microsoft.Office.Tools.Word.RichTextContentControl richTextControl2;
    
    private void AddRichTextControlAtRange()
    {
        Word.Document currentDocument = this.Application.ActiveDocument;
        currentDocument.Paragraphs[1].Range.InsertParagraphBefore();
    
        Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
    
        richTextControl2 = extendedDocument.Controls.AddRichTextContentControl(
            currentDocument.Paragraphs[1].Range, "richTextControl2");
        richTextControl2.PlaceholderText = "Enter your first name";
    }
    

Yerel içerik denetimini temel alan bir içerik denetimi eklemek için

  1. Ad<Add denetim sınıfına> sahip bir ControlCollection yöntem kullanın (burada denetim sınıfı, eklemek istediğiniz içerik denetimi sınıfının adıdır, örneğin AddRichTextContentControl), ve parametresi Microsoft.Office.Interop.Word.ContentControl vardır.

    Aşağıdaki kod örneği, belge açıldıktan sonra belgedeki her yerel zengin metin denetimi için yeni RichTextContentControl bir oluşturma yöntemini kullanırAddRichTextContentControl. Bu kodu çalıştırmak için kodu projenizdeki sınıfına ThisAddIn ekleyin.

    private System.Collections.Generic.List
        <Microsoft.Office.Tools.Word.RichTextContentControl> richTextControls;
    
    private void Application_DocumentOpen(Microsoft.Office.Interop.Word.Document Doc)
    {
        if (Doc.ContentControls.Count > 0)
        {
            Document extendedDocument = Globals.Factory.GetVstoObject(Doc);
    
            richTextControls = new System.Collections.Generic.List
                <Microsoft.Office.Tools.Word.RichTextContentControl>();
            int count = 0;
    
            foreach (Word.ContentControl nativeControl in Doc.ContentControls)
            {
                if (nativeControl.Type ==
                    Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlRichText)
                {
                    count++;
                    Microsoft.Office.Tools.Word.RichTextContentControl tempControl =
                        extendedDocument.Controls.AddRichTextContentControl(nativeControl,
                        "VSTORichTextControl" + count.ToString());
                    richTextControls.Add(tempControl);
                }
            }
        }
    }
    

    C# için olay işleyicisini Application_DocumentOpen DocumentOpen de olaya eklemeniz gerekir.

    this.Application.DocumentOpen +=
        new Word.ApplicationEvents4_DocumentOpenEventHandler(Application_DocumentOpen);