Aracılığıyla paylaş


Ana Bilgisayar Öğelerinin ve Ana Bilgisayar Denetimlerinin Programsal 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. Konak Öğeleri ve Konak Kontrollerine Genel Bakış.

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

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 Microsoft.Office.Tools.Word.Document konak öğesi yerine yerel Microsoft.Office.Interop.Word.Document nesnesi olur.Benzer şekilde, yeni çalışma sayfasını Worksheets.Add yöntemini kullanarak çalışma zamanında oluşturduysanız, Microsoft.Office.Tools.Excel.Worksheet konak öğesi yerine yerel Microsoft.Office.Interop.Excel.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. Document (Belge) Konak Öğesi, Workbook (Çalışma Kitabı) Konak Öğesi ve Çalışma sayfası ana madde.

Uygulama düzeyi projesinde, çalışma zamanında Microsoft.Office.Tools.Word.Document, Microsoft.Office.Tools.Excel.Workbook veya Microsoft.Office.Tools.Excel.Worksheet konak öğelerini yaratabilirsiniz.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.

Programlı Olarak Konak Kontrolleri Oluşturma

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

Yerel Microsoft.Office.Interop.Word.Document veya Microsoft.Office.Interop.Excel.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.

ms178779.collapse_all(tr-tr,VS.110).gifYö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, Microsoft.Office.Tools.Word.Bookmark konak kontrolünün InnerObject özelliğini yönteme geçirerek, Microsoft.Office.Interop.Word.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, Microsoft.Office.Tools.Excel.NamedRange denetimi oluşturulur ve AutoFill yöntemine geçirilir.Kod, AutoFill yöntemi tarafından gerekli olan arka plandaki Office Microsoft.Office.Interop.Excel.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);

ms178779.collapse_all(tr-tr,VS.110).gifYerel 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, Microsoft.Office.Tools.Excel.Worksheet konak öğesi yerine Microsoft.Office.Interop.Excel.Worksheet nesnesi döndürür.Benzer olarak, Word'de RichTextContentControl konak kontrolünün Parent özelliği, Microsoft.Office.Tools.Word.Document konak öğesi yerine Microsoft.Office.Interop.Word.Document nesnesi döndürür.

ms178779.collapse_all(tr-tr,VS.110).gifKonak Kontrollerinin Koleksiyonlarına Erişme

Office için Visual Studio Araçları çalışma zamanı modülü,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 Microsoft.Office.Tools.Word.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. Belgeye Ç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, Microsoft.Office.Interop.Word.Document'ın Bookmarks özelliğini veya Microsoft.Office.Tools.Word.Document'ın Bookmarks özelliğini kullanarak, belgedeki her Microsoft.Office.Tools.Word.Bookmark konak kontrolünü numaralandırmak imkansızdır.Bu özellikler yalnızca dahil Microsoft.Office.Interop.Word.Bookmark denetimlerini belgede; içerdikleri değil Microsoft.Office.Tools.Word.Bookmark konak denetimlerini belgede.

Ayrıca bkz.

Başvuru

Worksheet.Controls

Document.Controls

Kavramlar

Konak Öğeleri ve Konak Kontrollerine Genel Bakış

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

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

Çalışma sayfası ana madde

Workbook (Çalışma Kitabı) Konak Öğesi

Document (Belge) Konak Öğesi