Aracılığıyla paylaş


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

Belge düzeyinde Word projelerde, içerik denetimleri belgeye projenizde tasarım zamanı sırasında veya çalışma zamanında ekleyebilirsiniz. Uygulama düzeyinde Word projelerde, herhangi bir açık belgenin içerik denetimleri çalışma zamanında ekleyebilirsiniz.

Uygulama alanı: Bu konudaki bilgiler Word 2007 ve Word 2010 uygulamalarının belge düzeyi projelerine ve uygulama düzeyi projelerine yöneliktir. Daha fazla bilgi için bkz. Office Uygulamalarında Kullanılabilir Özellikler ve Proje Türü.

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. Bu öğeleri bilgisayarınızdaki Visual Studio sürümü ve kullandığınız ayarlar belirler. Daha fazla bilgi için bkz: Visual Studio Ayarlar.

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, Word 2010 projeler için araç kutusunda onay kutusu içerik denetimi sağlamaz. Belgeye onay kutusu içerik denetimi eklemek için oluşturmanız gerekir bir ContentControl nesne programatik 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 Geliştirici sekmesini tıklatın.

    Not

    Eğer Geliştirici sekmesi görünür değilse, önce onu göstermelisiniz. Daha fazla bilgi için bkz. Nasıl Yapılır: Şerit Üzerinde Geliştirici Sekmesi 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 belgede içerik denetimleri değil kalıcı oluşturdu. Fakat, yerel içerik denetimi belgede kalıcıdır. Doğal bir içerik denetimi belgenin bir sonraki açılışında temel alan bir içerik denetimi yeniden oluşturabilirsiniz. Daha fazla bilgi için bkz. Belgeye Çalışma Zamanında Denetim Ekleme.

Not

Bir belgeye Word 2010 projesinde 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 Microsoft.Office.Interop.Word.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 belgede içerik denetimleri değil kalıcı oluşturdu. Fakat, yerel içerik denetimi belgede kalıcıdır. Doğal bir içerik denetimi belgenin bir sonraki açılışında temel alan bir içerik denetimi 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. Word Belgelerini ve Excel Çalışma Kitaplarını Çalıştırma Zamanında Uygulama Düzeyi Eklentileri İçinde Genişletme.

Not

Bir belgeye Word 2010 projesinde 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 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()
    
        ' Use the following line of code in projects that target the .NET Framework 4.
        Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument)
    
        ' In projects that target the .NET Framework 3.5, use the following line of code.
        ' Dim extendedDocument As Document = currentDocument.GetVstoObject()
    
        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();
    
        // Use the following line of code in projects that target the .NET Framework 4.
        Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
    
        // In projects that target the .NET Framework 3.5, use the following line of code.
        // Document extendedDocument = currentDocument.GetVstoObject();
    
        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 Microsoft.Office.Interop.Word.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()
    
        ' Use the following line of code in projects that target the .NET Framework 4.
        Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument)
    
        ' In projects that target the .NET Framework 3.5, use the following line of code.
        ' Dim extendedDocument As Document = currentDocument.GetVstoObject()
    
        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();
    
        // Use the following line of code in projects that target the .NET Framework 4.
        Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
    
        // In projects that target the .NET Framework 3.5, use the following line of code.
        // Document extendedDocument = currentDocument.GetVstoObject();
    
        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
    
            ' Use the following line of code in projects that target the .NET Framework 4.
            Dim extendedDocument As Document = Globals.Factory.GetVstoObject(Doc)
    
            ' In projects that target the .NET Framework 3.5, use the following line of code.
            ' Dim extendedDocument As Document = Doc.GetVstoObject()
    
            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)
        {
            // Use the following line of code in projects that target the .NET Framework 4.
            Document extendedDocument = Globals.Factory.GetVstoObject(Doc);
    
            // In projects that target the .NET Framework 3.5, use the following line of code.
            // Document extendedDocument = Doc.GetVstoObject();
    
            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

Konak Öğeleri ve Konak Kontrollerine Genel Bakış

Belgeye Çalışma Zamanında Denetim Ekleme

Ana Bilgisayar Öğelerinin ve Ana Bilgisayar Denetimlerinin Programsal Sınırlamaları

Ana Bilgisayar Denetimleri İçin Yardımcı Yöntemler

Diğer Kaynaklar

Uygulama Düzeyi Eklentileri Programlama

Belge Düzeyi Özelleştirmelerini Programlama