Aracılığıyla paylaş


Belgeye Çalışma Zamanında Denetim Ekleme

Microsoft Office Word belgesine ve Microsoft Office Excel çalışma kitabına çalışma zamanında denetim ekleyebilirsiniz ve denetimleri kaldırabilirsiniz. Belgelere çalışma zamanında eklediğiniz denetimler dinamik denetim olarak adlandırılır.

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

Bu konu, aşağıdaki bilgileri sağlar:

  • Denetim koleksiyonları kullanarak çalışma anında denetimleri yönetme

  • Belgelere konak denetimleri ekleme

  • Belgelere Windows Forms denetimleri ekleme

Mürekkepten videoya İlgili video gösterimi için, bkz. Nasıl Yaparım: Bir belge yüzey zamanında denetim eklemek?.

Denetim Koleksiyonları Kullanarak Çalışma Anında Denetimleri Yönetme

Çalışma zamanında denetimleri eklemek, almak veya kaldırmak için Microsoft.Office.Tools.Word.ControlCollection ve Microsoft.Office.Tools.Excel.ControlCollection nesnelerinin yardımcı yöntemlerini kullanın.

Bu nesnelere erişme yönteminiz geliştirdiğiniz projenin türüne bağlıdır:

Denetim Ekleme

Microsoft.Office.Tools.Excel.ControlCollection ve Microsoft.Office.Tools.Word.ControlCollection türleri, belgelere ve çalışma kitaplarına konak denetimleri ve ortak Windows Forms denetimleri eklemek için kullanılabilen yardımcı yöntemleri içerir. Tüm yöntem adları şu biçimdedir: Adddenetim sınıfı. (Burada denetim sınıfı, eklemek istediğiniz Windows Forms denetiminin sınıf adıdır ). Örneğin, AddNamedRange denetimini belgenize eklemek için NamedRange yöntemini kullanın. Yardımcı yöntemlerin tam listesi için bkz. Ana Bilgisayar Denetimleri İçin Yardımcı Yöntemler ve Windows Forms Denetimleri İçin Yardımcı Yöntemler.

Aşağıdaki örnekte, Excel için olan bir belge düzeyi projesinde Sheet1 öğesine NamedRange eklenmektedir.

Dim range1 As Excel.Range = Globals.Sheet1.Range("A1", "D5")
Dim namedRange1 As Microsoft.Office.Tools.Excel.NamedRange = _
    Globals.Sheet1.Controls.AddNamedRange(range1, "ChartSource")
Excel.Range range1 = Globals.Sheet1.Range["A1", "D5"];
Microsoft.Office.Tools.Excel.NamedRange namedRange1 =
    Globals.Sheet1.Controls.AddNamedRange(range1, "ChartSource");

Denetimlere Erişme ve Denetimleri Silme

Microsoft.Office.Tools.Excel.Worksheet veya Microsoft.Office.Tools.Word.Document'in Controls özelliğini, tasarım zamanında eklediğiniz denetimler de dahil olmak üzere belgenizdeki tüm denetimleri yinelemek için kullanabilirsiniz. Belgelere tasarım zamanında eklediğiniz denetimler statik denetim olarak adlandırılır.

Dinamik denetimleri, denetimin Delete yöntemini ya da her Controls koleksiyonunun Remove yöntemini çağırarak kaldırabilirsiniz. Aşağıdaki kod örneğinde, Excel için olan bir belge düzeyi projesinde Sheet1'den bir NamedRange'i kaldırmak için Remove yöntemi kullanılır.

Globals.Sheet1.Controls.Remove("ChartSource")
Globals.Sheet1.Controls.Remove("ChartSource");

Statik denetimleri çalışma zamanında kaldıramazsınız. Eğer statik bir denetimi kaldırmak için Delete veya Remove yöntemini kullanmaya çalışırsanız bir CannotRemoveControlException atılır.

Not

Belgenin Shutdown olay işleyicisinde program aracılığıyla denetimleri kaldırmayın. Shutdown olayı olduğunda UI öğeleri artık kullanılamaz. Belge kapanmadan denetimleri kaldırmak istiyorsanız, kodunuzu başka bir olayın (Word için Document.BeforeClose veya Document.BeforeSave ya da Excel için Workbook.BeforeClose veya Workbook.BeforeSave) işleyicisine ekleyin.

Belgelere Konak Denetimleri Ekleme

Belgelere program aracılığıyla konak denetimleri eklediğinizde denetimi benzersiz olarak tanımlayan bir isim sağlayıp denetimin belgede nereye ekleneceğini belirlemelisiniz. Konulara özel yönergeler için aşağıdaki konulara bakınız:

Konak denetimleriyle ilgili daha fazla bilgi için, bkz. Konak Öğeleri ve Konak Kontrollerine Genel Bakış.

Bir belge kaydedilip ardından kapatıldığında tüm dinamik olarak oluşturulan konak denetimlerinin olaylarıyla bağlantısı kesilir ve bu denetimler veri bağlama işlevlerini kaybeder. Belge tekrar açıldığı zaman konak denetimlerinin yeniden oluşturması için çözümünüze kod ekleyebilirsiniz. Daha fazla bilgi için bkz. Office Belgelerinde Dinamik Denetimleri Kalıcı Kılma.

Not

Belgelere program aracılığıyla eklenemediklerinden dolayı aşağıdaki konak denetimleri için yardımcı yöntemler sunulmamıştır: XmlMappedRange, XMLNode ve XMLNodes.

Belgelere Windows Forms Denetimleri Ekleme

Bir belgeye program aracılığıyla bir Windows Forms denetimi eklediğinizde denetimin konumunu ve denetimi benzersiz olarak tanımlayan bir isim sağlamalızınız. Visual Studio Tools for Office çalışma zamanı modülü tüm denetimler için yardımcı yöntemler sağlar. Bu yöntemler, denetimin konumunu belirlemek üzere bir aralık veya belirli bir koordinat verilebilmesi için fazla yüklenmiştir. Konuya özel yönergeler için bkz. Nasıl Yapılır: Office Belgelerine Windows Forms Denetimleri Ekleme.

Bir belge kaydedilip ardından kapatıldığında tüm dinamik olarak oluşturulan Windows Forms denetimleri belgeden kaldırılır. Belge tekrar açıldığı zaman denetimlerin yeniden oluşturması için çözümünüze kod ekleyebilirsiniz. Bir uygulama düzeyi eklentisi kullanarak dinamik Windows Forms denetimleri oluşturursanız denetimlerin ActiveX sarmalıyıcıları belgede bırakılır. Daha fazla bilgi için bkz. Office Belgelerinde Dinamik Denetimleri Kalıcı Kılma.

Not

Windows Forms denetimleri korumalı belgelere program aracılığıyla eklenemez. Bir Word belgesinin veya Excel çalışma sayfasının korumasını denetim eklemek için program aracılığıyla kaldırırsanız, belge kapandığında denetimin ActiveX sarmalayıcılarını kaldırmak için ek kod yazmanız gerekir. Denetimin ActiveX sarmalıyıcıları korumalı belgelerden otomatik olarak silinmez.

Özel Denetim Ekleme

Kullanılabilir yardımcı yöntemlerin desteklemediği (örn. özel bir kullanıcı denetimi) bir System.Windows.Forms.Control eklemek istiyorsanız aşağıdaki yöntemleri kullanın.

Denetimi eklemek için System.Windows.Forms.Control'u, denetimin konumunu ve denetimi benzersiz olarak tanımlayan bir ismi AddControl yöntemine geçirin. AddControl yöntemi, denetimin çalışma sayfasıyla ya da belgeyle nasıl etkileştiğini tanımlayan bir nesne döndürür. Döndürülen nesnenin türü projeye bağlıdır:

Aşağıdaki kod örneğinde, özel bir kullanıcı denetimini .NET Framework 4'i hedefleyen bir belge düzeyi Excel projesindeki bir çalışma sayfasına dinamik olarak eklemek için AddControl(Control, Range, String) yönteminin nasıl kullanılacağı gösterilmektedir. Bu örnekte, kullanıcı denetiminin adı UserControl1, Range'ın adı range1'dir. Bu örneği kullanmak için projedeki bir Sheetn sınıfından çalıştırın.

Dim customControl As New UserControl1()

Dim dynamicControl As Microsoft.Office.Tools.Excel.ControlSite = _
    Me.Controls.AddControl(customControl, range1, "dynamic")
UserControl1 customControl = new UserControl1();

Microsoft.Office.Tools.Excel.ControlSite dynamicControl =
    this.Controls.AddControl(customControl, range1, "dynamic");

Özel Denetimlerin Üyelerini Kullanma

Bir çalışma sayfasına ya da belgeye denetim eklemek için AddControl yöntemlerinden birini kullandıktan sonra artık iki farklı denetim nesneniz vardır:

  • Özel denetimni temsil eden System.Windows.Forms.Control.

  • Denetimi çalışma sayfasına ya da belgeye eklendikten sonra temsil eden ControlSite,OLEObject veya OLEControl nesnesi.

Bu denetimler birçok özellik ve yöntemi paylaşır. Bu üyelere uygun denetimler aracılığıyla erişmeniz önemlidir:

  • Sadece özel denetime ait olan üyelere erişmek için System.Windows.Forms.Control'ü kullanın.

  • Denetimler tarafından paylaşılan üyelere erişmek için ControlSite, OLEObject veya OLEControl nesnesini kullanın.

System.Windows.Forms.Control'den paylaşılan bir üyeye erişirseniz, uyarı veya bidirim olmaksızın başaramayabilir ya da geçersiz sonuçlar üretebilir. Gereken yöntem ya da özellik kullanılabilir olduğu sürece daima ControlSite, OLEObject veya OLEControl nesnesinin yöntemlerini ya da özelliklerini kullanın. Sadece kullanılır olmadığı durumlarda System.Windows.Forms.Control'e başvurmalısınız.

Örneğin ControlSite ve System.Windows.Forms.Control sınıflarının her ikisinin de bir Top sınıfı vardır. Denetimin üstü ile belgenin üstü arasındaki uzaklığı almak ve ayarlamak için System.Windows.Forms.Control'ün Top özelliğini değil, ControlSite'ın Top özelliğini kullanın.

' Property is set in relation to the document.
dynamicControl.Top = 100

' Property is set in relation to the container control.
customControl.Top = 100
// Property is set in relation to the document.
dynamicControl.Top = 100;

// Property is set in relation to the container control.
customControl.Top = 100;

Ayrıca bkz.

Görevler

Nasıl Yapılır: Çalışma Sayfasına ListObject Denetimi Ekleme

Nasıl Yapılır: Çalışma Sayfasına NamedRange Denetimi Ekleme

Nasıl Yapılır: Çalışma Sayfasına Chart Denetimi Ekleme

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

Nasıl Yapılır: Word Belgelerine Bookmark (Yer İşareti) Denetimi Ekleme

Nasıl Yapılır: Office Belgelerine Windows Forms Denetimleri Ekleme

Kavramlar

Office Belgelerinde Dinamik Denetimleri Kalıcı Kılma

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

Windows Forms Denetimleri İçin Yardımcı Yöntemler

Office Belgerindeki Windows Forms Denetimlerine Genel Bakış

Diğer Kaynaklar

Office Belgeleri Üzerinde Denetimler