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.
Araç Kutusu'nun Word Denetimleri sekmesinden, bir içerik denetimi ekleyin.
Word'de yerel içerik denetimini eklediğiniz şekilde belgenize içerik denetimi ekleyebilirsiniz.
Veri Kaynakları penceresinden içerik denetimini belgenize sürükleyin.Bu, denetim oluşturulduğunda denetimi veriye bağlamak istediğinizde yararlıdır.Daha fazla bilgi için, bkz. Nasıl Yapılır: Belgeleri Nesne Verileriyle Doldurma ve Nasıl Yapılır: Belgeleri Veritabanı Verileriyle 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. Visual Studio'da Geliştirme Ayarlarını özelleştirme.
Araç kutusu kullanarak belgeye içerik denetimi eklemek için
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.
Araç kutusu'nu açın ve Word Denetimleri sekmesine tıklayın.
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
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.
Ş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.
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ı