İçerik Denetimleri
İçerik denetimleri şu özellikleri olan belge ve şablonları tasarlamanız için bir yol sağlar:
Girdileri form gibi kontrol eden kullanıcı arabirimi (KA) .
Belgenin veya şablonun korumalı bölümlerini düzenlemeyi engelleyen kısıtlamalar.Daha fazla bilgi için, bkz. İçerik Denetimleri Kullanarak Belgelerin Bölümlerini Koruma.
Veri kaynağına veri bağlama.Daha fazla bilgi için, bkz. İçerik Kontrollerine Veri Bağlama.
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.
İlgili video gösterimi için bkz: Veri bağlama için Word 2007 içerik denetimlerini kullanma için Visual Studio Araçları Office System (3.0).
İçerik Denetimlerine Genel Bakış
İçerik denetimleri kullanıcı girdi ve çıktısı için iyileştirilmiş KA sağlar. Bir belgeye içerik denetimleri eklediğinizde, denetim bir kenarlık, başlık ve kullanıcı için yönerge sağlayan geçici yazı ile tanımlanır.Denetim kenarlığı ve başlığı belgenin yazdırılmış sürümünde gözükmez.
Örneğin, kullanıcının belgenize tarih bölümü eklemesini istiyorsanız, belgenize tarih seçici içerik denetimi ekleyebilirsiniz.Kullanıcı, denetime tıkladığında standart tarih seçici KA belirir.Görüntülenen bölgesel takvimi kurmak ve tarih biçimini belirlemek için denetim özelliklerini ayarlayabilirsiniz.Kullanıcı bir tarih seçtikten sonra denetim KA gizlenir ve tarih sadece eğer kullanıcı belgeyi yazdırırsa gözükür.
İçerik denetimleri aynı zamanda aşağıdakileri yapmanıza yardım eder:
Kullanıcıların belgenin bölümlerini düzenlemelerini veya silmelerini engeller.Bu, belgenizde veya şablonunuzda kullanıcıların okuyabildiği fakat düzenleyemediği bilgileriniz varken veya kullanıcıların içerik denetimlerini düzenlemelerini istiyorken bu denetimleri silmelerini istemediğiniz zaman yararlıdır.
Bir belgenin veya şablonun bölümlerini veriye bağlama.İçerik denetimlerini veritabanı alanlarına, .NET Framework'ta yönetilen nesnelere, belgenizde veya diğer veri kaynaklarında saklanan XML öğelerine bağlayabilirsiniz.
Belge düzeyi projelerinde içerik denetimlerini belgenize tasarım veya çalışma anında ekleyebilirsiniz.Belge düzeyi projeleri uygulamarında içerik denetimlerini herhangi bir açık belgeye çalışma anında ekleyebilirsiniz.Daha fazla bilgi için bkz. Nasıl Yapılır: Word Belgelerine İçerik Denetimleri Ekleme.
[!NOT]
İçerik denetimlerini sadece Open XML biçiminde kaydedilmiş belgelerde kullanabilirsiniz.İçerik denetimlerini Word 97-2003 (.doc) belgesi biçiminde kaydedilmiş belgelerde kullanamazsınız.
İçerik Denetim Türleri
Belgelere ekleyebileceğiniz içerik denetimlerinin dokuz farklı türleri vardır.İçerik denetimlerinin çoğu karşılık gelen türü olan Microsoft.Office.Tools.Word ad alanı.Genel de kullanılabilir ContentControl, hangi temsil edebilir herhangi bir kullanılabilir içerik denetimini.Bu kullanılabilir içerik denetimlerini nasıl kullanacağınızı gösteren izlenecek yollar için, bkz. İzlenecek Yol: İçerik Denetimlerini Kullanarak Şablon Oluşturma.
Yapı Taşı Galerisi
Yapı taşı galerisi kullanıcıların belgelerine eklemek için yapı taşı belgesi listesinden seçmesine olanak sağlar.Yapı taşı belgesi yaygın bir kapak sayfası, biçimlendirilmiş tablo veya üstbilgi gibi birçok kez kullanılmak üzere oluşturulmuş bir içerik parçasıdır.Daha fazla bilgi için bkz. BuildingBlockGalleryContentControl türü.Yapı taşları hakkında daha fazla bilgi için, bkz. Geliştiriciler için Word 2007'de Ne Yeni.
Onay kutusu
Bir onay kutusu ikili bir durumu temsil eden bir kullanıcı Arabirimi sağlar: seçilir veya temizlenir.
Diğer içerik denetimi türü bulunan, aksine Office çalışma zamanı için Visual Studio Araçları onay kutusu içerik denetimi temsil eden özel bir türü sağlamaz.Diğer bir deyişle, yok yok CheckBoxContentControl türü.Ancak, yine de onay kutusu içerik denetiminin genel ekleyerek oluşturabileceğiniz ContentControl bir belgeye program aracılığıyla.Daha fazla bilgi için bkz: Onay kutusu içerik denetimleri Word projelerinde.
Birleşik Giriş Kutusu
Birleşik giriş kutusu kullanıcının seçebileceği öğelerin listesini görüntüler.Birleşik giriş kutusu açılan listenin tersine kullanıcının kendi öğelerini eklemesine olanak sağlar.Daha fazla bilgi için bkz. ComboBoxContentControl türü.
Tarih Seçici
Tarih seçici bir tarih seçmek için takvim KA sağlar.Takvim, son kullanıcı denetimdeki açılan oka tıkladığında belirir.Bölgesel takvimler ve farklı tarih biçimleri kullanabilirsiniz.Daha fazla bilgi için bkz. DatePickerContentControl türü.
Açılan Liste
Açılan liste kullanıcının seçebileceği öğelerin listesini görüntüler.Açılan liste birleşik giriş kutusunun tersine kullanıcının kendi öğelerini eklemesine veya düzenlemesine izin vermez.Daha fazla bilgi için bkz. DropDownListContentControl türü.
Group
Grup denetimi, kullanıcının belgede düzenleyemeceği veya silemeyeceği korumalı bir bölge tanımlar.Grup denetimi metin, tablo, grafik ve diğer içerik denetimleri gibi herhangi bir belge öğesi içerebilir.Daha fazla bilgi için bkz. GroupContentControl türü.
Resim
Bir görüntüyü gösteren resim denetimi.Görüntüyü tasarım yada çalışma anında belirleyebilirsiniz veya kullanıcılar bu denetimi bir görüntüyü belgeye eklemek için tıklayabilirler.Daha fazla bilgi için bkz. PictureContentControl türü.
Zengin Metin
Zengin metin denetimi yazı yada tablo, resim veya diğer içerik denetimleri gibi öğeler içerir.Daha fazla bilgi için bkz. RichTextContentControl türü.
Düz Metin
Düz metin denetimi yazı içerir.Düz metin denetimi tablo, resim veya diğer içerik denetimleri gibi öğeler içeremez.Buna ek olarak, düz metin denetimindeki tüm yazılar aynı tarz biçimlendirmeye sahiptir.Örneğin, düz metin denetimindeki cümlenin bir kelimesini italik yaparsanız, denetimdeki tüm yazı italik yapılır.Daha fazla bilgi için bkz. PlainTextContentControl türü.
Genel içerik denetimi
Genel içerik denetimi olan bir ContentControl herhangi bir kullanılabilir içerik denetimlerini türlerini temsil eden nesne.ContentControl nesnesini farklı bir tür gibi davranması için Type özelliğini kullanarak değiştirebilirsiniz. Örneğin, eğer düz metin denetimini temsil eden ContentControl nesnesini oluşturursanız, bu nesneyi çalıştırma anında birleşik giriş kutusu gibi davranması için değiştirebilirsiniz.
ContentControl nesnelerini tasarım anında değil ama çalıştırma anında oluşturabilirsiniz.Daha fazla bilgi için bkz. Nasıl Yapılır: Word Belgelerine İçerik Denetimleri Ekleme.
İçerik Denetimlerinin Ortak Özellikleri
Birçok içerik denetimi ortak görevleri gerçekleştirmek için kullanabileceğiniz bir üye kümesi paylaşır.Aşağıdaki tablo bu üyeleri kullanarak gerçekleştirebileceğiniz bazı görevleri tanımlar.
Bu görev için: |
Bunu yapın: |
---|---|
Denetimde görüntülenen metni alın veya ayarlayın. |
Text özelliğini kullanın.
|
Bir kullanıcı denetimi düzenleyene kadar denetimde görüntülenen geçici yazıyı alın veya ayarlayın, denetim veri kaynağından gelen veri ile doldurulur veya denetimin içeriği silinir. |
PlaceholderText özelliğini kullanın.
|
Kullanıcı kenarlığa tıkladığında içerik denetiminin kenarlığında görüntülenen başlığı alın veya ayarlayın. |
Title özelliğini kullanın. |
Kullanıcı denetimi düzenledikten sonra belgeden otomatik olarak kaldırın.(Denetimdeki metin belgede kalır.) |
Temporary özelliğini kullanın. |
Kullanıcı içerik denetimine tıkladığında veya program aracılığı ile imleç içerik denetimine hareket ettiği zaman kodu çalıştırın. |
Denetimin Entering olayını işleyin. |
Kullanıcı içerik denetiminin dışına tıkladığında veya imleç program aracılığı ile içerik denetimi dışına hareket ettiğinde kodu çalıştırın. |
Denetimin Exiting olayını işleyin. |
İçerik denetimi yineleme veya geri alma işlemiyle belgeye eklendikten sonra kodu çalıştırın. |
Denetimin Added olayını işleyin. |
İçerik denetimi belgeden silinmeden hemen önce kodu çalıştırın. |
Denetimin Deleting olayını işleyin. |
İçerik Denetimlerini Kullanarak Belge Bölümlerini Koruma
Belgenin bir bölümünü koruduğunuzda kullanıcıların belgenin o korunmuş bölümündeki içeriği degiştirmelerini veya silmelerini engellemiş olursunuz.İçerik kontrollerini kullanarak belgenin bölümlerini koruyabileyeceğiniz birçok yol var.
Eğer korumak istediğiniz alan içerik denetiminin içinde ise kullanıcının denetimi düzenlemesini veya silmesini engellemek için içerik denetimi özelliklerini kullanabilirsiniz.
LockContents özelliği kullanıcının içeriği düzenlemesini engeller.
LockContentControl özelliği kullanıcının içeriği silmesini engeller.
Eğer korumak istediğiniz alan içerik denetiminin içinde değilse veya içerik denetimi yada diğer içerik türlerini içeren bir alanı korumak istiyorsanız, tüm alanı GroupContentControl içine koyabilirsiniz.GroupContentControl diğer içerik denetimlerinin tersine kullanıcıya görünür bir KA sağlamaz.Tek amacı kullanıcının düzenleyemeceği bir alan tanımlamaktır.
[!NOT]
Eğer gömülü içerik denetimi içeren bir GroupContentControl oluşturursanız, gömülü içerik denetimleri otomatik olarak korunmaz.Kullanıcının içeriği düzenlenmemesi için her gömülü denetimin LockContents özelliğini kullanmalısınız.
Belgenin bölümlerini korumayı içerik denetimleri ile nasıl kullanacağınız hakkında daha fazla bilgi için, bkz. Nasıl Yapılır: İçerik Denetimlerini Kullanarak Belge Bölümlerini Koruma
İçerik Denetimlerine Veri Bağlama
Belgelerdeki verileri, içerik denetimlerini veri kaynağına bağlayarak görüntüleyebilirsiniz.Veri kaynağı güncellendiğinde içerik denetimleri bu değişiklikleri yanısıtır.Aynı zamanda değişiklikleri veri kaynağına kaydedebilirsiniz.
İçerik denetimleri aşağıdaki veri bağlama seçeneklerini sağlar:
İçerik denetimlerini veritabanı alanlarına veya Windows Forms gibi aynı veri bağlama modellerini kullanarak yönetilen nesnelere bağlayabilirsiniz.
İçerik denetimlerini belgede gömülü XML (diğer adıyla özel XML bölümleri) öğelerine bağlayabilirsiniz.
Office çözümlerindeki konak kontrolünün veriye bağlanmasının genel bakışı için, bkz. Office Çözümlerinde Verileri Denetimlere Bağlama
Windows Forms Veri Bağlama Modelini Kullanma
Birçok içerik kontrolü Windows Forms kullanan basit veri bağlama modelini destekler.Basit veri bağlama, denetimin veri tablosundaki değeri gibi tek bir veri öğesine bağlanması anlamına gelir.Daha fazla bilgi için bkz. Veri Bağlama ve Windows Forms.
Belge düzeyi projelerinde Visual Studio'daki Veri Kaynağı penceresini kullanarak içerik denetimlerine veri bağlayabilirsiniz.Belgeye nasıl veri bağlama içerik denetimi ekleyeceğiniz hakkında daha fazla bilgi için, bkz. Nasıl Yapılır: Belgeleri Veritabanı Verileriyle Doldurma ve Nasıl Yapılır: Belgeleri Nesne Verileriyle Doldurma.
Aşağıdaki tablo Veri Kaynağı penceresindeki her veri türüne bağlayabileceğiniz içerik denetimlerini listeler.
Veri türü |
Varsayılan İçerik Denetimi |
Bu veri türüne bağlanabilen diğer içerik denetimleri |
---|---|---|
Bytearray[0] = "42"; |
None |
Belge ve uygulama düzeyi projelerinde, denetimin DataBindings özelliğinin Add metodunu kullanarak veri kaynağını program aracılığıyla içerik denetimine bağlayabilirsniz.Eğer bunu yaparsanız, Metin dizesini Add metodunun propertyName parametresine geçirin.Text özelliği içerik denetimlerinin varsayılan veri bağlama özelliğidir.
İçerik denetimleri, denetimdeki değişikliklerin veri kaynağına güncelleştirildiği iki yönlü veri bağlamayı destekler.Daha fazla bilgi için bkz. Nasıl Yapılır: Konak Kontrolü Verileriyle Veri Kaynağını Güncelleme.
[!NOT]
İçerik denetimleri karmaşık veri bağlamasını desteklemez.Eğer [T:Microsoft.Office.Tools.Word.DropDownListContentControlveyaT:Microsoft.Office.Tools.Word.ComboBoxContentControl]'ü Windows Forms modeli kullanarak veri kaynağına bağlarsanız, kullanıcı denetime tıkladığında sadece tek bir değer görecektir.Eğer bu içerik denetimlerini kullanıcının seçebileceği bir veri değeri kümesine bağlamak istiyorsanız, bu denetimleri özelleştirilmiş XML bölüm öğelerine bağlayabilirsiniz.
İçerik Denetimlerini Özelleşmiş XML Bölümlerine Bağlama
Bazı içerik denetimlerini belgede gömülü XML bölümü öğelerine bağlayabilirsiniz.Özelleşmiş XML bölümleri hakkında daha fazla bilgi için, bkz: Özel XML Bölümlerine Genel Bakış
İçerik denetimini özelleşmiş bir XML bölümüne bağlamak için denetimin XMLMapping özelliğini kullanın.Aşağıdaki kod örneği PlainTextContentControl'ü belgeye önceden eklenmiş, özelleşmiş Product XML bölümü düğümünün altındaki Price öğesine nasıl bağlayacağınızı gösterir.
plainTextContentControl1.XMLMapping.SetMapping("/Product/Price")
plainTextContentControl1.XMLMapping.SetMapping("/Product/Price", String.Empty, null);
İçerik denetimlerini özelleşmiş XML bölümlerine nasıl bağlayacağınız hakkında izlenecek yollar için, bkz: İzlenecek Yol: İçerik Denetimlerini Özel XML Bölümlerine Bağlama.
Bir içerik denetimini özelleşmiş XML bölümüne bağladığınızda iki yönlü veri bağlama otomatik olarak etkinleştirilir.Eğer kullanıcı denetimdeki metni düzenlerse, buna karşılık gelen XML öğeleri de otomatik olarak güncellenir.Benzer şekilde, eğer özelleşmiş XML bölümlerindeki öğe değerleri değişirse, XML öğelerine bağlanmış içerik denetimleri yeni verileri gösterir.
Aşağıdaki içerik denetim türlerini özelleşmiş XML bölümlerine bağlayabilirsiniz:
İçerik Denetimleri için Veri Bağlama Olayları
Tüm içerik denetimleri, denetimdeki bir metinin veri kaynağına güncellenmeden önce belli ölçütlere uyduğunu doğrulayan veri ile alakalı görevleri gerçekleştirmeniz için bir olaylar kümesi sağlar.Aşağıdaki tablo veri bağlama ile alakalı içerik denetimi olaylarını listeler.
Görev |
Olay |
---|---|
Word özellemiş XML bölümüne bağlanmış metindeki içerik denetimini otomatik olarak güncellemeden önce kodu çalıştırın. |
|
Word içerik denetimine bağlanmış (içerik denetimindeki metin değiştikten sonra) özellemiş XML bölümü değerini otomatik olarak güncellemeden önce kodu çalıştırın. |
|
Denetimin içeriğini özellemiş ölçütlere göre doğrulamak için kendi kodunuzu çalıştırın. |
|
Kodu denetimin içeriği başarı ile doğrulandıktan sonra çalıştırın. |
İçerik Denetimlerinin Sınırlamaları
Office projelerinizde içerik denetimlerini kullanırken aşağıdaki sınırlamalara dikkat edin.
Tasarım ve Çalıştırma Anı Arasındaki Davranış Farkları
Microsoft Office Word'ün içerik denetimlerine çalıştırma anında dayattığı birçok sınırlama tasarım anında dayatılmaz. Visual Studio da belge düzeyi çözümlerinin KA'nü tasarlarken, sadece çalıştırma anında desteklenen içerik denetimlerini değiştirdiğinizden emin olun.
Eğer içerik denetimini tasarımda çalıştırma anında desteklenmeyecek şekilde değiştirirseniz, Visual Studio tasarımcısı desteklenmeyen değişiklikler hakkında uyarıda bulunmaz.Yinede, hata ayıklarken veya projeyi çalıştırırken yada eğer projeyi saklar ve yeniden açarsanız, Word belgeyi onarmak için sizden izin isteyen bir hata mesajı görüntüleyecektir.Belgeyi onardığınzda, Word desteklenmeyen içeriği ve biçimlendirmeyi içerikten kaldırır.
Örneğin, Word tasarım anında bir tabloya PlainTextContentControl eklemenize engel olmaz.Fakat, PlainTextContentControl nesneleri çalıştırma anında tablo içeremeyeceği için belge açıldığında Word hata mesajı görüntüler.
Ayrıca unutmayın ki içerik denetimi davranışlarını tanımlayan birçok özellik tasarım anında hiçbir etkiye sahip değildir.Örneğin, içerik denetiminin LockContents özelliğini tasarım anında True olarak ayarlarsanız bile Visual Studio tasarımcısındaki denetimin metnini düzenleyebilirsiniz.Bu özellik kullanıcıların denetimi sadece çalıştırma anında düzenlemelerini engeller.
Olay Sınırlamaları
İçerik denetimleri, kullanıcı metni yada denetimdeki diğer öğeleri değiştirdiği zaman oluşan bir olay sağlamaz.Örneğin, kullanıcı DropDownListContentControl veya ComboBoxContentControl'ünden farklı bir öğe seçtiğinde hiçbir olay oluşturulmaz.
Kullanıcının içerik denetimleri içeriğini ne zaman düzenlediğini belirlemek için denetimi özel XML bölümüne bağlayabilir ve sonra da StoreUpdating olayını işleyebilirsiniz.Bu olay, kullanıcı özel XML bölümüne bağlanmış denetimin içeriğini değiştirdiğinde oluşur. İçerik denetimlerini özelleşmiş XML bölümlerine nasıl bağlayacağınız hakkında izlenecek yollar için, bkz: İzlenecek Yol: İçerik Denetimlerini Özel XML Bölümlerine Bağlama.
Word projelerinde onay kutusu içerik denetimleri
Word 2010 yeni gösteren bir onay kutusu içerik denetimi türü kullanılmaya başlandı.Ancak, Office çalışma zamanı için Visual Studio Araçları karşılık gelen sağlamaz CheckBoxContentControl , Office projelerinde kullanabileceğiniz türü.Bir onay kutusu içerik denetimi oluşturmak için bir Word 2013 veya Word 2010 proje kullanın, AddContentControl yöntemi oluşturmak için bir ContentControl nesne ve pass wdContentControlCheckBox yöntemine belirt onay kutusu içerik denetiminin değeri.Aşağıdaki kod örneğinde bunun nasıl yapıldığı gösterilmiştir.
Me.Paragraphs(1).Range.InsertParagraphBefore()
Me.Paragraphs(1).Range.Select()
Dim checkBoxControl1 As Microsoft.Office.Tools.Word.ContentControl =
Me.Controls.AddContentControl("checkBoxControl1", Word.WdContentControlType.wdContentControlCheckBox)
checkBoxControl1.Checked = True
this.Paragraphs[1].Range.InsertParagraphBefore();
this.Paragraphs[1].Range.Select();
Microsoft.Office.Tools.Word.ContentControl checkBoxControl1 =
this.Controls.AddContentControl("checkBoxControl1", Word.WdContentControlType.wdContentControlCheckBox);
checkBoxControl1.Checked = true;
Ayrıca bkz.
Görevler
Nasıl Yapılır: Word Belgelerine İçerik Denetimleri Ekleme
İzlenecek Yol: İçerik Denetimlerini Kullanarak Şablon Oluşturma
Kavramlar
Genişletilmiş Nesneleri Kullanarak Word'ü Otomatikleştirme
Konak Denetimlerinin ve Konak Öğelerinin Programlama Sınırlamaları