İçerik denetimleri

İçerik denetimleri, şu özelliklere sahip belgeler ve şablonlar tasarlamanız için bir yol sağlar:

İçerik denetimleri hakkında

İçerik denetimleri, hem kullanıcı girişi hem de yazdırma için iyileştirilmiş bir kullanıcı arabirimi sağlar. Belgeye içerik denetimi eklediğinizde, denetim kullanıcıya yönergeler sağlayabilecek bir kenarlık, başlık ve geçici metinle tanımlanır. Denetimin kenarlık ve başlığı belgenin yazdırılan sürümlerinde görünmez.

Örneğin, kullanıcının belgenizin bir bölümüne tarih girmesini istiyorsanız, belgeye tarih seçici içerik denetimi ekleyebilirsiniz. Kullanıcılar denetime tıkladığında standart tarih seçici kullanıcı arabirimi görüntülenir. Ayrıca, görüntülenen bölgesel takvimi ayarlamak ve tarih biçimini belirtmek için denetimin özelliklerini de ayarlayabilirsiniz. Kullanıcı bir tarih seçtikten sonra denetimin kullanıcı arabirimi gizlenir ve yalnızca kullanıcı belgeyi yazdırırsa tarih görüntülenir.

İçerik denetimleri aşağıdakileri yapmanıza da yardımcı olur:

  • Kullanıcıların belgenin bölümlerini düzenlemesini veya silmesini engelleme. Bu, belge veya şablonda kullanıcıların okuyabileceği ancak düzenleyemeyeceği bilgiler varsa veya kullanıcıların içerik denetimlerini düzenleyebilmesini ancak silmemesini istiyorsanız yararlıdır.

  • Bir belgenin veya şablonun bölümlerini verilere bağlama. İçerik denetimlerini veritabanı alanlarına, .NET Framework'teki yönetilen nesnelere, belgede depolanan XML öğelerine ve diğer veri kaynaklarına bağlayabilirsiniz.

    Belge düzeyi projelerde, belgenize tasarım zamanında veya çalışma zamanında içerik denetimleri ekleyebilirsiniz. VSTO Eklenti projelerinde, çalışma zamanında herhangi bir açık belgeye içerik denetimleri ekleyebilirsiniz. Daha fazla bilgi için bkz . Nasıl yapılır: Word belgelerine içerik denetimleri ekleme.

Not

İçerik denetimlerini yalnızca Open XML biçiminde kaydedilmiş belgelerde kullanabilirsiniz. Word 97-2003 belgesi (.doc) biçiminde kaydedilmiş belgelerde içerik denetimlerini kullanamazsınız.

İçerik denetimi türleri

Belgelere ekleyebileceğiniz dokuz farklı içerik denetimi türü vardır. İçerik denetimlerinin çoğunun ad alanında Microsoft.Office.Tools.Word karşılık gelen bir türü vardır. Kullanılabilir içerik denetimlerinden herhangi birini temsil eden genel ContentControlbir de kullanabilirsiniz. Kullanılabilir içerik denetimlerinin her birinin nasıl kullanılacağını gösteren bir izlenecek yol için bkz . İzlenecek yol: İçerik denetimlerini kullanarak şablon oluşturma.

Yapı taşı galerisi, kullanıcıların belgeye eklemek üzere belge yapı taşları listesinden seçim yapmaya olanak tanır. Belge yapı taşı, ortak kapak sayfası, biçimlendirilmiş tablo veya üst bilgi gibi birden çok kez kullanılmak üzere oluşturulmuş bir içerik parçasıdır. Daha fazla bilgi için türüne BuildingBlockGalleryContentControl bakın. Yapı taşları hakkında daha fazla bilgi için bkz . Word 2007'deki geliştiricilere yönelik yenilikler.

Onay kutusu

Onay kutusu, ikili durumu temsil eden bir kullanıcı arabirimi sağlar: seçili veya temizlendi.

Diğer içerik denetim türlerinden farklı olarak, Office çalışma zamanı için Visual Studio Araçları onay kutusu içerik denetimini temsil eden belirli bir tür sağlamaz. Başka bir deyişle, türü yoktur CheckBoxContentControl . Ancak, belgeye program aracılığıyla genel ContentControl bir öğe ekleyerek bir onay kutusu içerik denetimi oluşturabilirsiniz. Daha fazla bilgi için bkz . Word projelerinde onay kutusu içerik denetimleri.

Birleşik giriş kutusu

Birleşik giriş kutusu, kullanıcıların seçebileceği öğelerin listesini görüntüler. Açılan listeden farklı olarak birleşik giriş kutusu kullanıcıların kendi öğelerini eklemesine olanak tanır. Daha fazla bilgi için türüne ComboBoxContentControl bakın.

Tarih seçici

Tarih seçici, tarih seçmek için bir takvim kullanıcı arabirimi sağlar. Takvim, son kullanıcı denetimdeki açılan oka tıkladığında görünür. Bölgesel takvimleri ve farklı tarih biçimlerini kullanabilirsiniz. Daha fazla bilgi için türüne DatePickerContentControl bakın.

Açılan listede kullanıcıların seçebileceği öğelerin listesi görüntülenir. Birleşik giriş kutusundan farklı olarak, açılan liste kullanıcıların öğe eklemesine veya düzenlemesine izin vermez. Daha fazla bilgi için türüne DropDownListContentControl bakın.

Gruplandırma

Grup denetimi, bir belgenin kullanıcıların düzenleyemeyeceği veya silemeyeceği korumalı bir bölge tanımlar. Grup denetimi metin, tablo, grafik ve diğer içerik denetimleri gibi tüm belge öğelerini içerebilir. Daha fazla bilgi için türüne GroupContentControl bakın.

Resim

Resim denetimi bir resim görüntüler. Görüntüyü tasarım zamanında veya çalışma zamanında belirtebilir veya kullanıcılar belgeye eklenecek görüntüyü seçmek için bu denetime tıklayabilir. Daha fazla bilgi için türüne PictureContentControl bakın.

Zengin metin

Zengin metin denetimi metin veya tablolar, resimler veya diğer içerik denetimleri gibi diğer öğeleri içerir. Daha fazla bilgi için türüne RichTextContentControl bakın.

Düz metin

Düz metin denetimi metin içerir. Düz metin denetimi tablolar, resimler veya diğer içerik denetimleri gibi başka öğeler içeremez. Ayrıca, düz metin denetimindeki tüm metinler aynı biçimlendirmeye sahiptir. Örneğin, düz metin denetimindeki bir cümlenin sözcüğünü italik yaparsanız, denetimin içindeki tüm metin italik olur. Daha fazla bilgi için türüne PlainTextContentControl bakın.

Genel içerik denetimi

Genel içerik denetimi, kullanılabilir içerik denetimi türlerinden herhangi birini temsil eden bir ContentControl nesnedir. özelliğini kullanarak Type bir ContentControl nesneyi farklı bir içerik denetimi türü gibi davranacak şekilde değiştirebilirsiniz. Örneğin, düz metin denetimini temsil eden bir ContentControl nesne oluşturursanız, birleşik giriş kutusu gibi davranması için çalışma zamanında değiştirebilirsiniz.

Nesneleri tasarım zamanında değil, yalnızca çalışma zamanında oluşturabilirsiniz ContentControl . Daha fazla bilgi için bkz . Nasıl yapılır: Word belgelerine içerik denetimleri ekleme.

İçerik denetimlerinin ortak özellikleri

çoğu içerik denetimi, ortak görevleri gerçekleştirmek için kullanabileceğiniz bir üye kümesini paylaşır. Aşağıdaki tabloda, bu üyeleri kullanarak gerçekleştirebileceğiniz bazı görevler açıklanmaktadır.

Bu görev için: Bunu yapın:
Denetimde görüntülenen metni alın veya ayarlayın. Text özelliğini kullanın. Not:PictureContentControl ve ContentControl türleri bu özelliğe sahip değildir.
Kullanıcı denetimi düzenleyene, denetim bir veri kaynağından verilerle doldurulana veya denetimin içeriği silinene kadar denetimde görüntülenen geçici metni alın veya ayarlayın. PlaceholderText özelliğini kullanın. Not: Türün PictureContentControl bu özelliği yoktur.
Kullanıcı tıkladığında içerik denetiminin kenarlarında görüntülenen başlığı alın veya ayarlayın. Title özelliğini kullanın.
Kullanıcı denetimi düzenledikten sonra denetimi 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 imleç program aracılığıyla içerik denetimine taşındığında kodu çalıştırın. Denetimin Entering olayını işleme.
Kullanıcı içerik denetiminin dışına tıkladığında veya imleç program aracılığıyla içerik denetiminin dışına taşındığında kodu çalıştırın. Denetimin Exiting olayını işleme.
Bir yineleme veya geri alma işleminin sonucu olarak, belgeye içerik denetimi eklendikten sonra kodu çalıştırın. Denetimin Added olayını işleme.
İçerik denetimi belgeden silinmeden hemen önce kodu çalıştırın. Denetimin Deleting olayını işleme.

İçerik denetimlerini kullanarak belgelerin bölümlerini koruma

Belgenin bir bölümünü koruduğunuzda, kullanıcıların belgenin bu bölümündeki içeriği değiştirmesini veya silmesini engellersiniz. İçerik denetimlerini kullanarak belgenin bölümlerini korumanın çeşitli yolları vardır.

Korumak istediğiniz alan bir içerik denetiminin içindeyse, kullanıcıların denetimi düzenlemesini veya silmesini önlemek için içerik denetiminin özelliklerini kullanabilirsiniz:

  • LockContents özelliği kullanıcıların içeriği düzenlemesini engeller.

  • LockContentControl özelliği kullanıcıların denetimi silmesini engeller.

    Korumak istediğiniz alan bir içerik denetiminin içinde değilse veya içerik denetimleri ve diğer içerik türlerini içeren bir alanı korumak istiyorsanız, alanın tamamını içine GroupContentControlyerleştirebilirsiniz. Diğer içerik denetimlerinden farklı olarak, kullanıcı GroupContentControl tarafından görülebilen bir kullanıcı arabirimi sağlamaz. Tek amacı, kullanıcıların düzenleyemeyeceği bir bölge tanımlamaktır.

Not

Eklenmiş içerik denetimleri içeren bir GroupContentControl oluşturursanız, eklenmiş içerik denetimleri otomatik olarak korunmaz. Kullanıcıların içeriklerini düzenlemesini önlemek için her eklenmiş denetimin LockContents özelliğini kullanmanız gerekir.

Belgelerin bölümlerini korumak için içerik denetimlerini kullanma hakkında daha fazla bilgi için bkz . Nasıl yapılır: İçerik denetimlerini kullanarak belgelerin bölümlerini koruma.

İçerik denetimlerine veri bağlama

Bir içerik denetimini bir veri kaynağına bağlayarak belgelerdeki verileri görüntüleyebilirsiniz. Veri kaynağı güncelleştirildiğinde, içerik denetimi değişiklikleri yansıtır. Değişiklikleri veri kaynağına geri de kaydedebilirsiniz.

İçerik denetimleri aşağıdaki veri bağlama seçeneklerini sağlar:

  • Windows Forms ile aynı veri bağlama modelini kullanarak içerik denetimlerini veritabanı alanlarına veya yönetilen nesnelere bağlayabilirsiniz.

  • İçerik denetimlerini belgeye eklenmiş XML parçalarına (özel XML bölümleri olarak da adlandırılır) bağlayabilirsiniz.

    Office çözümlerindeki konak denetimlerini verilere bağlamaya genel bakış için bkz . Office çözümlerinde verileri denetimlere bağlama.

Windows Forms veri bağlama modelini kullanma

çoğu içerik denetimi, Windows Forms'un kullandığı basit veri bağlama modelini destekler. Basit veri bağlama, bir denetimin veri tablosunun sütunundaki bir değer gibi tek bir veri öğesine bağlı olduğu anlamına gelir. Daha fazla bilgi için bkz . Veri bağlama ve Windows Forms.

Belge düzeyi projelerde, Visual Studio'daki Veri Kaynakları penceresini kullanarak verileri içerik denetimlerine bağlayabilirsiniz. Belgelere veriye bağlı içerik denetimleri ekleme hakkında daha fazla bilgi için bkz . Nasıl yapılır: Belgeleri veritabanındaki verilerle doldurma ve Nasıl yapılır: Belgeleri nesnelerden alınan verilerle doldurma.

Aşağıdaki tabloda, Veri Kaynakları penceresindeki her veri türüne bağlayabileceğiniz içerik denetimleri listelenir.

Veri türü Varsayılan içerik denetimi Bu veri türüne bağlanabilecek diğer içerik denetimleri
Boolean

Byte

Char

Double

Enum

Guid

Int16

Int32

Int64

SByte

Single

String

TimeSpan

UInt16

UInt32

UInt64
PlainTextContentControl BuildingBlockGalleryContentControl

ComboBoxContentControl

DatePickerContentControl

RichTextContentControl
DateTime DatePickerContentControl BuildingBlockGalleryContentControl

ComboBoxContentControl

PlainTextContentControl

RichTextContentControl
Image

Byte Dizi
PictureContentControl Hiçbiri

Belge düzeyi ve VSTO Eklenti projelerinde, denetimin özelliğinin yöntemini DataBindings kullanarak Add içerik denetimini program aracılığıyla veri kaynağına bağlayabilirsiniz. Bunu yaparsanız Text dizesini yönteminin propertyName parametresine Add 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ı da destekler. Daha fazla bilgi için bkz . Nasıl yapılır: Bir veri kaynağını konak denetimindeki verilerle güncelleştirme.

Not

İçerik denetimleri karmaşık veri bağlamayı desteklemez. Windows Forms veri modelini kullanarak bir veri kaynağına veya ComboBoxContentControl bağlarsanızDropDownListContentControl, kullanıcılar denetime tıkladığında yalnızca tek bir değer görür. Bu denetimleri kullanıcıların aralarından seçim yapabilecekleri bir veri değerleri kümesine bağlamak istiyorsanız, bu denetimleri özel XML bölümündeki öğelere bağlayabilirsiniz.

İçerik denetimlerini özel XML bölümlerine bağlama

Bazı içerik denetimlerini, belgeye eklenmiş özel XML bölümlerindeki öğelere bağlayabilirsiniz. Özel XML bölümleri hakkında daha fazla bilgi için bkz . Özel XML bölümlerine genel bakış.

İçerik denetimini özel xml bölümündeki bir öğeye bağlamak için denetimin XMLMapping özelliğini kullanın. Aşağıdaki kod örneği, belgeye zaten eklenmiş olan özel bir XML bölümünde düğümün Product altındaki öğesine nasıl bağlanacağını PlainTextContentControlPrice gösterir.

plainTextContentControl1.XMLMapping.SetMapping("/Product/Price", String.Empty, null);

İçerik denetimlerinin özel XML bölümlerine nasıl bağlanacağını daha ayrıntılı olarak gösteren bir kılavuz için bkz . İzlenecek yol: İçerik denetimlerini özel XML bölümlerine bağlama.

İçerik denetimini özel bir XML bölümüne bağladığınızda, iki yönlü veri bağlama otomatik olarak etkinleştirilir. Kullanıcı denetimdeki metni düzenlerse, ilgili XML öğeleri otomatik olarak güncelleştirilir. Benzer şekilde, özel XML bölümlerindeki öğe değerleri değiştirilirse, XML öğelerine bağlı içerik denetimleri yeni verileri görüntüler.

Aşağıdaki içerik denetimi türlerini özel XML bölümlerine bağlayabilirsiniz:

İçerik denetimleri için veri bağlama olayları

Tüm içerik denetimleri, veri kaynağı güncelleştirilmeden önce denetimdeki metnin belirli ölçütleri karşıladığını doğrulama gibi verilerle ilgili görevleri gerçekleştirmek için işleyebileceğiniz bir dizi olay sağlar. Aşağıdaki tabloda, veri bağlamayla ilgili içerik denetimi olayları listelenir.

Görev Etkinlik
Word,özel xml bölümüne bağlı içerik denetimindeki metni otomatik olarak güncelleştirmeden hemen önce kodu çalıştırın. ContentUpdating
Word,içerik denetimine bağlı özel xml bölümündeki verileri otomatik olarak güncelleştirmeden hemen önce (içerik denetimindeki metin değiştikten sonra) kodu çalıştırın. StoreUpdating
Denetimin içeriğini özel ölçütlere göre doğrulamak için kendi kodunuzu çalıştırın. Validating
Denetimin içeriği başarıyla doğrulandıktan sonra kodu çalıştırın. Validated

İçerik denetimlerinin sınırlamaları

Office projelerinizde içerik denetimlerini kullanırken aşağıdaki sınırlamalara dikkat edin.

Tasarım zamanı ve çalışma zamanı arasındaki davranış farklılıkları

Microsoft Office Word'ün çalışma zamanında içerik denetimlerine uyguladığı sınırlamaların çoğu tasarım zamanında uygulanmaz. Visual Studio'da belge düzeyinde bir çözümün kullanıcı arabirimini tasarlarken, içerik denetimlerini yalnızca çalışma zamanında desteklenen yollarla değiştirdiğinizden emin olun.

İçerik denetimini tasarım zamanında, denetimin çalışma zamanında desteklemediği bir şekilde değiştirirseniz, Visual Studio tasarımcısı desteklenmeyen değişiklikler konusunda sizi uyarmaz. Ancak, projenin hatalarını ayıkladığınızda veya çalıştırdığınızda ya da projeyi kaydedip yeniden açtığınızda, Word bir hata iletisi görüntüler ve belgeyi onarma izni ister. Belgeyi onardığınızda, Word desteklenmeyen tüm içeriği ve biçimlendirmeyi denetimden kaldırır.

Örneğin, Word tasarım zamanında tablo eklemenizi PlainTextContentControl engellemez. Ancak, nesneler çalışma zamanında tablo içeremediğinden PlainTextContentControl , belge açıldığında Word bir hata iletisi görüntüler.

Ayrıca, içerik denetimlerinin davranışını tanımlayan birçok özelliğin tasarım zamanında hiçbir etkisi olmadığını unutmayın. Örneğin, tasarım zamanında içerik denetiminin LockContents özelliğini True olarak ayarlarsanız, Visual Studio tasarımcısındaki denetimdeki metni düzenlemeye devam edebilirsiniz. Bu özellik yalnızca kullanıcıların çalışma zamanında denetimi düzenlemesini engeller.

Olay sınırlamaları

İçerik denetimleri, kullanıcı denetimdeki metni veya diğer öğeleri değiştirdiğinde tetiklenen bir olay sağlamaz. Örneğin, bir kullanıcı veya ComboBoxContentControliçinde farklı bir öğe seçtiğinde tetiklenen bir DropDownListContentControl olay yoktur.

Bir kullanıcının içerik denetiminin içeriğini ne zaman düzenlediğini belirlemek için, denetimi özel bir XML bölümüne bağlayabilir ve ardından olayı işleyebilirsiniz StoreUpdating . Bu olay, kullanıcı özel xml bölümüne bağlı bir denetimin içeriğini değiştirdiğinde oluşturulur. İçerik denetiminin özel xml bölümüne nasıl bağlanacağını gösteren bir izlenecek yol için bkz . İzlenecek yol: İçerik denetimlerini özel XML bölümlerine bağlama.

Word projelerinde onay kutusu içerik denetimleri

Word 2010, onay kutusunu temsil eden yeni bir içerik denetimi türü kullanıma sunulmuştur. Ancak, Office çalışma zamanı için Visual Studio Araçları, Office projelerinde kullanmanız için karşılık gelen bir CheckBoxContentControl türü sağlamaz. Word 2013 veya Word 2010 projesinde onay kutusu içerik denetimi oluşturmak için yöntemini kullanarak AddContentControl bir ContentControl nesne oluşturun ve değeri yönteme geçirerek wdContentControlCheckBox onay kutusu içerik denetimi belirtin. Aşağıdaki kod örneği bunun nasıl yapılacağını gösterir.

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;