Aracılığıyla paylaş


Office Belgelerine Çalışma Zamanında Denetim Ekleme

Bir Microsoft Office Word belgesine ve Microsoft Office Excel çalışma kitabına çalışma zamanında denetimler ekleyebilirsiniz.Bunları zamanında da kaldırabilirsiniz.Çalışma zamanında ekleyip denetimler adı verilir Dinamik denetimleri.

Uygulama hedefi: Bu konudaki bilgiler, şu uygulamalar için belge düzeyi projeler ve uygulama düzeyi projelere yöneliktir. Excel 2013 ve Excel 2010; Word 2013 ve Word 2010. Daha fazla bilgi edinmek için, bkz. Office Uygulaması ve Proje Türüne Göre Kullanılabilir Özellikler.

Bu konu aşağıda açıklanmıştır:

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

  • Belgelere konak denetimleri ekleme.

  • Belgelerde Windows Forms denetimleri ekleyerek.

video bağlantısı İlgili video gösterimi için bkz: nasıl yapmak ı: eklemek denetimleri çalışma zamanında Belge yüzeyine?.

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

Çalışma zamanında denetimleri eklemek, almak veya kaldırmak için ControlCollection ve 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:

Denetimler Ekleme

ControlCollection Ve ControlCollection türleri, belgelere ve çalışma kitaplarına konak denetimleri ve ortak Windows Forms denetimleri eklemek için kullanabileceğiniz yardımcı yöntemleri içerir.Her yöntem adı biçimine sahip AddDenetim sınıfı, Denetim sınıfı eklemek istediğiniz denetimin sınıf adı. Örneğin, AddNamedRange denetimini belgenize eklemek için NamedRange yöntemini kullanın.

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

Worksheet veya 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. Ana Bilgisayar Öğelerine ve Denetimlerine 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]

Yardımcı yöntemler değil sağlanan aşağıdaki denetimleri, ana bilgisayara çünkü bu denetimleri belgelere program aracılığıyla eklenemez: 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.Office çalışma zamanı için Visual Studio Araçları tüm denetimler için yardımcı yöntemler sağlar.Bu yöntemlerin bir aralık veya denetimin konumunu belirli koordinatlarını geçmesi gerektiğini yüklenmiştir.

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

Eklemek isterseniz, bir Control değil tarafından desteklenen özel bir kullanıcı denetimi gibi kullanılabilen yardımcı yöntemleri, aşağıdaki yöntemleri kullanın:

Denetimi eklemek için 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.AddControl Yöntem döndürür bir ControlSite (Excel için) veya bir ControlSite nesnesi (Word için).

Aşağıdaki kod örneğinde nasıl kullanılacağını göstermektedir AddControl(Control, Range, String) özel bir kullanıcı denetimi belge düzeyi Excel projesindeki bir çalışma sayfasına dinamik olarak eklemek için yöntem.Bu örnekte kullanıcı denetiminin adı UserControl1ve Range adlı range1. Bu örneği kullanmak için çalıştırın bir Sheetn projesinde sınıf.

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 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 Control'ü kullanın.

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

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 Control'e başvurmalısınız.

Örneğin ControlSite ve 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 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 Sayfalarına ListObject Denetimleri Ekleme

Nasıl yapılır: Çalışma Sayfalarına NamedRange Denetimleri Ekleme

Nasıl Yapılır: Çalışma Sayfalarına Grafik Denetimleri Ekleme

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

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

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

Kavramlar

Office Belgelerinde Dinamik Denetimleri Kalıcı Kılma

Office Belgelerindeki Windows Forms Denetimlerine Genel Bakış

Diğer Kaynaklar

Office Belgelerindeki Denetimler