Aracılığıyla paylaş


Konak Denetimlerinin ve Konak Öğelerinin Programlama Sınırlamaları

Her konak öğesi ve konak kontrolü, ek işlevlerle birlikte ilgili yerel Microsoft Office Word veya Microsoft Office Excel nesnesi gibi davranmak için tasarlanmıştır.Fakat, çalışma zamanında konak öğeleri ve konak kontrollerinin davranışıyla yerel Office nesneleri arasında bazı temel farklılılar vardır.

Konak öğeleri ve konak kontrolleri hakkında genel bilgi için, bkz. Ana Bilgisayar Öğelerine ve Denetimlerine Genel Bakış.

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.

Programlı Olarak Konak Öğeleri Oluşturma

Programlı olarak bir belge, çalışma kitabı veya çalışma sayfasını, çalışma zamanında Word veya Excel nesne modeli kullanarak oluşturduğunuzda veya açtığınızda öğe, konak öğesi değildir. Onun yerine, yeni nesne yerel Office nesnesidir.Örneğin, eğer yeni Word belgesini çalışma zamanında oluşturmak için Documents.Add yöntemini kullanıyorsanız, o Document konak öğesi yerine yerel Document nesnesi olur.Benzer şekilde, yeni çalışma sayfasını Worksheets.Add yöntemini kullanarak çalışma zamanında oluşturduysanız, Worksheet konak öğesi yerine yerel Worksheet nesnesi alırsınız.

Belge düzeyi projesinde, konak öğelerini çalışma zamanında oluşturamazsınız. Belge düzeyi projesinde, konak öğeleri sadece tasarım zamanında oluşturulabilir.Daha fazla bilgi için bkz. Belge Konak Öğesi, Çalışma Kitabı Konak Öğesi ve Çalışma Sayfası Konak Öğesi.

Uygulama düzeyi projesinde, çalışma zamanında Document, Workbook veya Worksheet konak öğelerini yaratabilirsiniz.Daha fazla bilgi için bkz. Uygulama Düzeyi Eklentilerindeki Word Belgelerini ve Excel Çalışma Kitaplarını Çalışma Zamanında Genişletme.

Programlı Olarak Konak Kontrolleri Oluşturma

Konak kontrollerini, Document veya Worksheet konak öğesine programlı olarak çalışma zamanında ekleyebilirsiniz.Daha fazla bilgi için bkz. Office Belgelerine Çalışma Zamanında Denetim Ekleme.

Yerel Document veya Worksheet'e konak kontrolleri ekleyemezsiniz.

[!NOT]

Aşağıdaki konak kontrolleri programlı olarak çalışma sayfalarına veya belgelere eklenemez: XmlMappedRange, XMLNode, ve XMLNodes.

Konak Öğeleri, Konak Kontrolleri ve Yerel Office Nesneleri Arasındaki Tür Farklılıklarını Anlama

Her konak öğesi ve konak kontrolü için, arka planda yerel Microsoft Office Word veya Microsoft Office Excel nesnesi vardır.Arka plandaki nesneye konak öğesinin veya konak kontrolünün InnerObject özelliğini kullanarak erişebilirsiniz.Fakat, yerel Office nesnesini ilgili konak öğesine veya konak kontrolüne dönüştürmenin bir yolu yoktur.Eğer yerel Office nesnesini konak öğesi veya konak kontrolünün türüne dönüştürmeyi denerseniz, InvalidCastException oluşturulur.

Konak öğeleri ve konak kontrolleri türleri arasındaki farkın ve arka plandaki yerel Office nesnelerinin kodunuzu etkileyebileceği senaryolar vardır.

Yöntemlere ve Özelliklere Konak Kontrolleri Geçirme

Word'de konak kontrolünü, parametre olarak yerel World nesnesine gerek duyan özellik veya yönteme geçiremezsiniz. Arka plandaki yerel Word nesnesini döndürmek için konak kontrolünün InnerObject özelliğini kullanmalısınız.Örneğin, Bookmark konak kontrolünün InnerObject özelliğini yönteme geçirerek, Bookmark nesnesini de yönteme geçirebilirsiniz.

Excel'de kullanmak gerekir InnerObject yöntem veya özellik, arka plandaki Excel nesnesi beklediği zaman konak kontrolünü yönteme veya özelliğe geçirmek için konak kontrolünün özelliğini.

Aşağıdaki örnekte, NamedRange denetimi oluşturulur ve AutoFill yöntemine geçirilir.Kod, AutoFill yöntemi tarafından gerekli olan arka plandaki Office Range'i döndürmek için, isimlendirilmiş aralığın InnerObject özelliğini kullanır.

Me.Range("A1").Value2 = "Monday" 
Me.Range("A2").Value2 = "Tuesday" 

Dim dayRange As Microsoft.Office.Tools.Excel.NamedRange = _
    Me.Controls.AddNamedRange(Me.Range("A1", "A7"), "dayRange")
Me.Range("A1", "A2").AutoFill(dayRange.InnerObject, Excel.XlAutoFillType.xlFillDays)
this.Range["A1"].Value2 = "Monday";
this.Range["A2"].Value2 = "Tuesday";

Microsoft.Office.Tools.Excel.NamedRange dayRange = 
    this.Controls.AddNamedRange(this.Range["A1", "A7"], "dayRange");
this.Range["A1", "A2"].AutoFill(dayRange.InnerObject, Excel.XlAutoFillType.xlFillDays);

Yerel Office Yöntemleri ve Özelliklerinin Dönüş Türleri

Konak öğelerinin birçok yöntem ve özellikleri, arka plandaki yerel Office nesnesini konak öğesi neye bağlıysa oraya döndürür. Örneğin, Excel'de NamedRange konak kontrolünün Parent özelliği, Worksheet konak öğesi yerine Worksheet nesnesi döndürür.Benzer olarak, Word'de RichTextContentControl konak kontrolünün Parent özelliği, Document konak öğesi yerine Document nesnesi döndürür.

Konak Kontrollerinin Koleksiyonlarına Erişme

Office çalışma zamanı için Visual Studio Araçları,konak kontrolünün her türü için tek koleksiyon sağlamaz.Onun yerine, belge veya çalışma sayfası üzerindeki yönetilen kodların tümünde (konak kontrolleri ve Windows Forms denetimlerinin her ikisi de) ilerleme yapmak için konak öğesinin Controls özelliğini kullanın ve ilgilendiğiniz konak kontrolü türüyle eşleşen öğelere bakın.Aşağıdaki kod örneğinde, Word belgesindeki her denetim incelenir ve denetimin Bookmark olup olmadığı belirlenir.

Dim targetControl As Object 
For Each targetControl In Me.Controls

    If TypeOf (targetControl) Is Microsoft.Office.Tools.Word.Bookmark Then 
        Dim bookMark As Microsoft.Office.Tools.Word.Bookmark = _
            CType(targetControl, Microsoft.Office.Tools.Word.Bookmark)

        ' Do some work with the book mark here. 
    End If 
Next
foreach (object targetControl in this.Controls)
{
    Microsoft.Office.Tools.Word.Bookmark bookMark =
        targetControl as Microsoft.Office.Tools.Word.Bookmark;

    if (bookMark != null)
    {
        // Do some work with the bookmark here.
    }
}

Konak öğelerinin Controls özelliği hakkında daha fazla bilgi için bkz. Office Belgelerine Çalışma Zamanında Denetim Ekleme.

Word ve Excel nesne modelleri, belge ve çalışma sayfalarındaki yerel denetimlerin koleksiyonunu oluşturan özellikleri içerir.Yönetilen kodlara bu özellikleri kullanarak erişemezsiniz.Örneğin, Document'ın Bookmarks özelliğini veya Document'ın Bookmarks özelliğini kullanarak, belgedeki her Bookmark konak kontrolünü numaralandırmak imkansızdır.Bu özellikler yalnızca dahil Bookmark denetimlerini belgede; içerdikleri değil Bookmark konak denetimlerini belgede.

Ayrıca bkz.

Başvuru

Worksheet.Controls

Document.Controls

Kavramlar

Ana Bilgisayar Öğelerine ve Denetimlerine Genel Bakış

Genişletilmiş Nesneleri Kullanarak Word'ü Otomatikleştirme

Genişletilmiş Nesneleri Kullanarak Excel'i Otomatikleştirme

Çalışma Sayfası Konak Öğesi

Çalışma Kitabı Konak Öğesi

Belge Konak Öğesi