Nasıl Yapılır: Word Belgelerine İçerik Denetimleri Ekleme

Belge düzeyi Word projelerinde, içerik denetimleri belgede projenizde tasarım zamanında veya çalışma zamanında ekleyebilirsiniz.Uygulama düzeyi Word projelerinde içerik denetimlerini herhangi bir açık belgeye çalışma anında ekleyebilirsiniz.

Uygulama hedefi: Bu konudaki bilgiler, Word 2013 ve Word 2010 için belge düzeyi projeler ve uygulama düzeyi projelere yöneliktir. Daha fazla bilgi edinmek için, bkz. Office Uygulaması ve Proje Türüne Göre Kullanılabilir Özellikler.

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

  • Çalışma zamanında içerik denetimleri ekleme

  • Belge düzeyi projesinde çalışma zamanında içerik denetimleri ekleme

  • Uygulama düzeyi projesine çalışma zamanında içerik denetimleri ekleme

İçerik denetimleri hakkında bilgi için, bkz. İçerik Denetimleri.

Tasarım Zamanında İçerik Denetimleri Ekleme

Bir belge düzeyi projesinde belgeye tasarım zamanında içerik denetimleri eklemenin birkaç yolu vardır.

[!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. Visual Studio'da Geliştirme Ayarlarını özelleştirme.

Araç kutusu kullanarak belgeye içerik denetimi eklemek için

  1. Visual Studio tasarımcısında olan belgede, içerik denetimini nereye eklemek istiyorsanız imleci oraya koyun 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 biriyle ekleyin:

    • Araç Kutusu'ndaki içerik denetimini çift tıklayın.

      or

    • Araç Kutusu'ndaki içerik denetimini tıklayın ve ENTER tuşuna basın.

      or

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

[!NOT]

Araç Kutusu'nu kullanarak GroupContentControl ekleyemezsiniz.Sadece Word'de GroupContentControl'ü çalışma zamanında ekleyebilirsiniz.

[!NOT]

Visual Studio için araç kutusunda bir onay kutusu içerik denetiminin sağlamaz Word 2013 ve Word 2010 projelerinde.Onay kutusu içerik denetimi belgeye eklemek için oluşturmanız gerekir bir ContentControl nesnesini programlı olarak.Daha fazla bilgi için bkz. İçerik Denetimleri.

Word'deki belgenize içerik denetimi eklemek için

  1. Visual Studio tasarımcısında olan belgede, içerik denetimini nereye eklemek istiyorsanız imleci oraya koyun veya içerik denetiminin değiştirmesini istediğiniz metni seçin.

  2. Şerit'te Developer (Geliştirici) sekmesine tıklatın.

    [!NOT]

    Geliştirici sekmesi görünür değilse önce onu görünür yapın.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 denetimi için simgeyi tıklatın.

Belge Düzeyi Projesinde Çalışma Zamanında İçerik Denetimleri Ekleme

Projenizdeki ThisDocument sınıfının Controls özelliğinin yöntemlerini kullanarak içerik denetimlerini çalışma zamanında belgenize programlı olarak ekleyebilirsiniz.Her yöntem, aşağıdaki yollarla içerik denetimi eklemek için kullanabileceğiniz üç yüklemeye sahiptir:

  • Geçerli bölümdeki denetimi ekleme.

  • Belirlenen aralıktaki denetimi ekleme.

  • Belgedeki yerel içerik denetimine bağlı bir denetim ekleme.

Dinamik olarak belge kapatıldığında belgeye içerik denetimleri kalıcı oluşturdu.Fakat, yerel içerik denetimi belgede kalıcıdır.Belge sonraki seferde açıldığında yerel içerik denetimine dayanan bir içerik denetimini yeniden oluşturabilirsiniz.Daha fazla bilgi için bkz. Office Belgelerine Çalışma Zamanında Denetim Ekleme.

[!NOT]

Bir belgeyi Word 2010 proje onay kutusu içerik denetimi eklemek için oluşturmanız gerekir bir ContentControl nesne.Daha fazla bilgi için bkz. İçerik Denetimleri.

Geçerli bölümde içerik denetimi eklemek için

  • Add<denetim sınıfı> isimli ve yeni denetimin ismi için tek bir parametreye sahip ControlCollection yöntemini kullanın ( denetim sınıfı eklemek istediğiniz içerik denetiminin adı olduğunda, örn. AddRichTextContentControl).

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

    Dim richTextControl1 As Microsoft.Office.Tools.Word.RichTextContentControl
    
    Private Sub AddRichTextControlAtSelection()
        Me.Paragraphs(1).Range.InsertParagraphBefore()
        Me.Paragraphs(1).Range.Select()
        richTextControl1 = Me.Controls.AddRichTextContentControl("richTextControl1")
        richTextControl1.PlaceholderText = "Enter your first name" 
    End Sub
    
    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";
    }
    

Belirlenmiş aralığa içerik denetimi eklemek için

  • Add<denetim sınıfı> adında ve Range parametresi olan ControlCollection yöntemini kullanın (Burada denetim sınıfı, eklemek istediğiniz denetiminin sınıf adıdır. Örn. AddRichTextContentControl).

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

    Dim richTextControl2 As Microsoft.Office.Tools.Word.RichTextContentControl
    
    Private Sub AddRichTextControlAtRange()
        Me.Paragraphs(1).Range.InsertParagraphBefore()
        richTextControl2 = Me.Controls.AddRichTextContentControl(Me.Paragraphs(1).Range, _
            "richTextControl2")
        richTextControl2.PlaceholderText = "Enter your first name" 
    End Sub
    
    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";
    }
    

Belgedeki yerel içerik denetimine bağlı bir içerik denetimi eklemek için

  • Add<denetim sınıfı> adında ve Microsoft.Office.Interop.Word.ContentControl parametresi olan ControlCollection yöntemini kullanın (Burada denetim sınıfı, eklemek istediğiniz denetiminin sınıf adıdır. Örn. AddRichTextContentControl).

    Aşağıdaki kod örneğinde, belgedeki her yerel zengin metin denetimine yeni bir RichTextContentControl eklemek için ControlCollection.AddRichTextContentControl(ContentControl, String) yöntemi kullanılır.Bu kodu çalıştırmak için, kodu projenizdeki ThisDocument sınıfına ekleyin ve ThisDocument_Startup olay işleyicisinden CreateRichTextControlsFromNativeControls yöntemini çağırın.

    Private richTextControls As New System.Collections.Generic.List _
            (Of Microsoft.Office.Tools.Word.RichTextContentControl)
    
    Private Sub CreateRichTextControlsFromNativeControls()
        If Me.ContentControls.Count <= 0 Then 
            Return 
        End If 
    
        Dim count As Integer = 0
        For Each nativeControl As Word.ContentControl In Me.ContentControls
            If nativeControl.Type = Word.WdContentControlType.wdContentControlRichText Then
                count += 1
                Dim tempControl As Microsoft.Office.Tools.Word.RichTextContentControl = _
                    Me.Controls.AddRichTextContentControl(nativeControl, _
                    "VSTORichTextContentControl" + count.ToString())
                richTextControls.Add(tempControl)
            End If 
        Next nativeControl
    End Sub
    
    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);
            }
        }
    }
    

Uygulama Düzeyi Projesine Çalışma Zamanında İçerik Denetimleri Ekleme

Uygulama düzeyi eklentileri kullanarak içerik denetimlerini herhangi bir açık belgeye programlı olarak ekleyebilirsiniz.Bunu yapmak için, açık olan belgeye bağlı olan Document konak öğesi yaratın ve bu konak öğesinin Controls özelliğinin yöntemlerini kullanın.Her yöntem, aşağıdaki yollarla içerik denetimi eklemek için kullanabileceğiniz üç yüklemeye sahiptir:

  • Geçerli bölümdeki denetimi ekleme.

  • Belirlenen aralıktaki denetimi ekleme.

  • Belgedeki yerel içerik denetimine bağlı bir denetim ekleme.

Dinamik olarak belge kapatıldığında belgeye içerik denetimleri kalıcı oluşturdu.Fakat, yerel içerik denetimi belgede kalıcıdır.Belge sonraki seferde açıldığında yerel içerik denetimine dayanan bir içerik denetimini yeniden oluşturabilirsiniz.Daha fazla bilgi için bkz. Office Belgelerinde Dinamik Denetimleri Kalıcı Kılma.

Uygulama düzeyi projelerinde konak öğeleri oluşturma hakkında daha fazla bilgi için, bkz. Uygulama Düzeyi Eklentilerindeki Word Belgelerini ve Excel Çalışma Kitaplarını Çalışma Zamanında Genişletme.

[!NOT]

Belge içinde bir onay kutusu içerik denetimi eklemek için bir Word 2013 veya Word 2010 projesi oluşturmanız gerekir bir ContentControl nesne.Daha fazla bilgi için bkz. İçerik Denetimleri.

Geçerli bölümde içerik denetimi eklemek için

  • Add<denetim sınıfı> isimli ve yeni denetimin ismi için tek bir parametreye sahip ControlCollection yöntemini kullanın ( denetim sınıfı eklemek istediğiniz içerik denetiminin adı olduğunda, örn. AddRichTextContentControl).

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

    Dim richTextControl1 As Microsoft.Office.Tools.Word.RichTextContentControl
    
    Private Sub AddRichTextControlAtSelection()
        Dim currentDocument As Word.Document = Me.Application.ActiveDocument
        currentDocument.Paragraphs(1).Range.InsertParagraphBefore()
        currentDocument.Paragraphs(1).Range.Select()
    
        Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument)
    
    
        richTextControl1 = extendedDocument.Controls.AddRichTextContentControl("richTextControl1")
        richTextControl1.PlaceholderText = "Enter your first name" 
    End Sub
    
    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";
    }
    

Belirlenmiş aralığa içerik denetimi eklemek için

  • Add<denetim sınıfı> adında ve Range parametresi olan ControlCollection yöntemini kullanın (Burada denetim sınıfı, eklemek istediğiniz denetiminin sınıf adıdır. Örn. AddRichTextContentControl).

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

    Dim richTextControl2 As Microsoft.Office.Tools.Word.RichTextContentControl
    
    Private Sub AddRichTextControlAtRange()
        Dim currentDocument As Word.Document = Me.Application.ActiveDocument
        currentDocument.Paragraphs(1).Range.InsertParagraphBefore()
    
        Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument)
    
        richTextControl2 = extendedDocument.Controls.AddRichTextContentControl( _
            extendedDocument.Paragraphs(1).Range, "richTextControl2")
        richTextControl2.PlaceholderText = "Enter your first name" 
    End Sub
    
    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";
    }
    

Belgedeki yerel içerik denetimine bağlı bir içerik denetimi eklemek için

  • Add<denetim sınıfı> adında ve Microsoft.Office.Interop.Word.ContentControl parametresi olan ControlCollection yöntemini kullanın (Burada denetim sınıfı, eklemek istediğiniz denetiminin sınıf adıdır. Örn. AddRichTextContentControl).

    Aşağıdaki kod örneğinde, belge açıldığında belgedeki her yerel zengin metin denetimi için yeni bir RichTextContentControl eklemek amacıyla ControlCollection.AddRichTextContentControl(ContentControl, String) yöntemi kullanılır.Bu kodu çalıştırmak için projenizdeki ThisAddIn sınıfına kodu ekleyin.

    Private richTextControls As New System.Collections.Generic.List _
        (Of Microsoft.Office.Tools.Word.RichTextContentControl)
    
    Private Sub Application_DocumentOpen(ByVal Doc As Microsoft.Office.Interop.Word.Document) _
        Handles Application.DocumentOpen
    
        If Doc.ContentControls.Count > 0 Then 
    
            Dim extendedDocument As Document = Globals.Factory.GetVstoObject(Doc)
    
            Dim count As Integer = 0
            For Each nativeControl As Word.ContentControl In Doc.ContentControls
                If nativeControl.Type = Word.WdContentControlType.wdContentControlRichText Then
                    count += 1
                    Dim tempControl As Microsoft.Office.Tools.Word.RichTextContentControl = _
                        extendedDocument.Controls.AddRichTextContentControl(nativeControl, _
                        "VSTORichTextContentControl" + count.ToString())
                    richTextControls.Add(tempControl)
                End If 
            Next nativeControl
        End If 
    End Sub
    
    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#'ta, Application_DocumentOpen olay işleyicisini DocumentOpen olayına iliştirmelisiniz.

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

Ayrıca bkz.

Kavramlar

Genişletilmiş Nesneleri Kullanarak Word'ü Otomatikleştirme

Ana Bilgisayar Öğelerine ve Denetimlerine Genel Bakış

Office Belgelerine Çalışma Zamanında Denetim Ekleme

Konak Denetimlerinin ve Konak Öğelerinin Programlama Sınırlamaları

Diğer Kaynaklar

Uygulama Düzeyi Eklentileri Programlama

Belge Düzeyi Özelleştirmelerini Programlama