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
İ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:
Excel için olan bir belge düzeyi projesinde Sheet1, Sheet2, Sheet3 sınıflarının Worksheet.Controls özelliğini kullanın. Bu sınıflar hakkında daha fazla bilgi için bkz. Çalışma Sayfası Konak Öğesi.
Word için olan bir belge düzeyi projesinde ThisDocument sınıfının Document.Controls özelliğini kullanın. Bu sınıf hakkında daha fazla bilgi için bkz. Document (Belge) Konak Öğesi.
Excel veya Word için olan bir uygulama düzeyi projesinde, çalışma zamanında oluşturduğunuz Microsoft.Office.Tools.Excel.Worksheet veya Microsoft.Office.Tools.Word.Document nesnelerinin Controls özelliğini kullanın. Çalışma zamanında bu nesneleri 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.
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.
Excel'de Microsoft.Office.Tools.Excel.ControlCollection nesnesinin AddControl() yöntemlerinden birini kullanın.
Word'de Microsoft.Office.Tools.Word.ControlCollection nesnesinin AddControl() yöntemlerinden birini 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:
.NET Framework 4'i hedefleyen projelerde bu yöntem Excel'de Microsoft.Office.Tools.Excel.ControlSite nesnesi veya Word'de Microsoft.Office.Tools.Word.ControlSite nesnesi döndürür.
.NET Framework 3.5'i hedefleyen projelerde bu yöntem Excel'de Microsoft.Office.Tools.Excel.OLEObject nesnesi veya Word'de Microsoft.Office.Tools.Word.OLEControl nesnesi döndürü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ış