Konak öğelerine ve konak denetimlerine genel bakış

Şunlar için geçerlidir:yes Mac noiçin Visual Studio noVisual Studio Visual Studio Code

Konak öğeleri ve konak denetimleri, Visual Studio'daki Office geliştirme araçları kullanılarak oluşturulan Office çözümleri için programlama modeli sağlamaya yardımcı olan türlerdir. Konak öğeleri ve konak denetimleri, Microsoft Office Word ve Microsoft Office Excel'in COM tabanlı nesne modelleriyle etkileşime geçmeyi daha çok Windows Forms denetimleri gibi yönetilen nesnelerle etkileşime geçmeyi sağlar.

Şunlar için geçerlidir: Bu konudaki bilgiler, Excel ve Word için belge düzeyi projeler ve VSTO Eklenti projeleri için geçerlidir. Daha fazla bilgi için bkz. Office uygulaması ve proje türüne göre kullanılabilen özellikler.

Konak öğeleri

Konak öğeleri, Office projelerindeki nesne modeli hiyerarşilerinin en üstünde yer alan türlerdir. Office çalışma zamanı için Visual Studio Araçları, Word ve Excel çözümleri için aşağıdaki konak öğelerini tanımlar:

  • Document

  • Workbook

  • Worksheet

  • ChartSheet

    Bu türlerin her biri, Yerel Office nesnesi olarak adlandırılan Word veya Excel nesne modelinde yerel olarak bulunan bir nesneyi genişletir. Örneğin, Document konak öğesi Word için birincil birlikte çalışma derlemesinde tanımlanan nesnesini genişletir Document .

    Konak öğeleri genellikle ilgili Office nesneleriyle aynı temel işlevlere sahiptir, ancak aşağıdaki özelliklerle geliştirilmiştir:

  • Konak denetimleri ve Windows Forms denetimleri de dahil olmak üzere yönetilen denetimleri barındırma özelliği.

  • Daha zengin olay modelleri. Yerel Word ve Excel nesne modellerindeki bazı belge, çalışma kitabı ve çalışma sayfası olayları yalnızca uygulama düzeyinde oluşturulur. Konak öğeleri bu olayları belge düzeyinde sağlayarak belirli bir belgenin olaylarını işlemenin daha kolay olmasını sağlar.

Belge düzeyi projelerindeki konak öğelerini anlama

Belge düzeyindeki projelerde konak öğeleri kodunuz için bir giriş noktası sağlar ve çözümünüzü geliştirmenize yardımcı olan tasarımcıları vardır.

ve Worksheet konak öğelerininDocument, Windows Forms tasarımcısı gibi belgenin veya çalışma sayfasının görsel temsili olan ilişkili tasarımcıları vardır. Belgenin veya çalışma sayfasının içeriğini doğrudan Word veya Excel'de değiştirmek ve denetimleri tasarım yüzeyine sürüklemek için bu tasarımcıyı kullanabilirsiniz. Daha fazla bilgi için bkz . Belge konak öğesi ve Çalışma sayfası konak öğesi.

Konak Workbook öğesi, kullanıcı arabirimine sahip denetimler için kapsayıcı görevi görmüyor. Bunun yerine, bu konak öğesinin tasarımcısı, tasarım yüzeyine gibi bir bileşeni sürüklemenizi sağlayan bir DataSetbileşen tepsisi olarak çalışır. Daha fazla bilgi için bkz . Çalışma kitabı konak öğesi.

Konak öğeleri belge düzeyi projelerde program aracılığıyla oluşturulamaz. Bunun yerine, Visual Studio'un ThisDocumentprojenizde tasarım zamanında otomatik olarak oluşturduğu , ThisWorkbookveya Sheetn sınıflarını kullanın. Oluşturulan bu sınıflar konak öğelerinden türetilir ve kodunuz için bir giriş noktası sağlar. Daha fazla bilgi için bkz. Konak öğelerinin ve konak denetimlerinin programlı sınırlamaları.

VSTO Eklenti projelerindeki konak öğelerini anlama

VSTO Eklentisi oluşturduğunuzda, varsayılan olarak hiçbir konak öğesine erişiminiz olmaz. Ancak, çalışma zamanında Word ve Worksheet Excel VSTO Eklentileri'nde , Workbookve konak öğeleri oluşturabilirsinizDocument.

Bir konak öğesi oluşturduktan sonra, belgelere denetim ekleme gibi görevleri gerçekleştirebilirsiniz. Daha fazla bilgi için bkz. VSTO Eklentilerindeki Word belgelerini ve Excel çalışma kitaplarını çalışma zamanında genişletme.

Konak denetimleri

Konak denetimleri, Word ve Excel nesne modellerindeki ve Range nesneleri gibi Microsoft.Office.Interop.Word.ContentControl çeşitli kullanıcı arabirimi (UI) nesnelerini genişletir.

Excel projeleri için aşağıdaki konak denetimleri kullanılabilir:

  • Grafik denetimi

  • ListObject denetimi

  • NamedRange denetimi

  • XmlMappedRange denetimi

    Aşağıdaki konak denetimleri Word projeleri için kullanılabilir:

  • Yer işareti denetimi

  • İçerik denetimleri

  • XMLNode denetimi

  • XMLNodes denetimi

    Office belgelerine eklenen konak denetimleri yerel Office nesneleri gibi davranır; ancak konak denetimleri, olaylar ve veri bağlama özellikleri de dahil olmak üzere ek işlevlere sahiptir. Örneğin, Excel'de yerel Range bir nesnenin olaylarını yakalamak istediğinizde, önce çalışma sayfasının değişiklik olayını işlemeniz gerekir. Ardından değişikliğin içinde Rangeolup olmadığını belirlemeniz gerekir. Buna karşılık, NamedRange konak denetiminde doğrudan işleyebileceğiniz bir Change olay vardır.

    Konak öğesi ile konak denetimleri arasındaki ilişki, Windows Form ve Windows Forms denetimleri arasındaki ilişkiye benzer. Windows Formu'na metin kutusu denetimi yerleştirdiğiniz gibi, bir konak öğesine de NamedRange denetim Worksheet yerleştirirsiniz. Aşağıdaki çizimde konak öğeleri ile konak denetimleri arasındaki ilişki gösterilmektedir.

    Relationship between host items and host controls

    Windows Forms denetimlerini Doğrudan Word ve Excel belge yüzeyine ekleyerek Office çözümlerinizde de kullanabilirsiniz. Daha fazla bilgi için bkz. Office belgeleriyle ilgili Windows Forms denetimlerine genel bakış.

Not

Word alt belgesine konak denetimleri veya Windows Forms denetimleri ekleme desteklenmez.

Belgelerinize konak denetimleri ekleme

Belge düzeyindeki projelerde, tasarım zamanında Word belgelerinize veya Excel çalışma sayfalarınıza aşağıdaki yollarla konak denetimleri ekleyebilirsiniz:

Konak denetimlerini adlandırma

Araç Kutusu'ndan belgenize bir konak denetimi sürüklediğinizde denetim, denetim türü kullanılarak otomatik olarak adlandırılır ve sonunda artımlı bir sayı olur. Örneğin, yer işaretleri bookmark1, bookmark2 vb. olarak adlandırılır. Denetimi eklemek için Word veya Excel'in yerel işlevselliğini kullanırsanız, denetimi oluşturduğunuz sırada belirli bir ad verebilirsiniz. Ayrıca, Özelliklerpenceresindeki Name özelliğinin değerini değiştirerek denetimlerinizi yeniden adlandırabilirsiniz.

Not

Konak denetimlerini adlandırmak için ayrılmış sözcükler kullanamazsınız. Örneğin, çalışma sayfasına denetim NamedRange ekler ve adı Sistem olarak değiştirirseniz, projeyi oluştururken hatalar oluşur.

Konak denetimlerini silme

Belge düzeyi projelerde, Excel çalışma sayfasında veya Word belgesinde denetimi seçip Delete tuşuna basarak konak denetimlerini tasarım zamanında silebilirsiniz. Ancak, denetimleri silmek NamedRange için Excel'de Ad Tanımla iletişim kutusunu kullanmanız gerekir.

Tasarım zamanında belgeye konak denetimi eklerseniz, denetimi kodda bir sonraki kullanışınızda özel durum oluştuğundan çalışma zamanında program aracılığıyla kaldırmamalısınız. Konak Delete denetiminin yöntemi yalnızca çalışma zamanında belgeye eklenen konak denetimlerini kaldırır. Tasarım zamanında oluşturulan bir konak denetiminin yöntemini çağırırsanız Delete , bir özel durum oluşturulur.

Örneğin, Delete yöntemi NamedRange yalnızca program aracılığıyla çalışma sayfasına eklenmişse öğesini başarılı bir şekilde siler NamedRange ve bu da dinamik olarak konak denetimleri oluşturma olarak bilinir. Dinamik olarak oluşturulan konak denetimleri, denetim adı veya Controls özelliğinin Remove yöntemine Controls geçirilerek de kaldırılabilir. Daha fazla bilgi için bkz. Çalışma zamanında Office belgelerine denetim ekleme.

Son kullanıcılar çalışma zamanında belgeden bir konak denetimini silerse, çözüm beklenmeyen yollarla başarısız olabilir. Konak denetimlerini silinmeye karşı korumak için Word ve Excel'deki belge koruma özelliklerini kullanabilirsiniz. Daha fazla bilgi için bkz . Office geliştirme örnekleri ve izlenecek yollar.

Not

Belgenin veya çalışma sayfasının olay işleyicisi sırasında Shutdown denetimleri program aracılığıyla kaldırmayın. Olay gerçekleştiğinde Shutdown kullanıcı arabirimi öğeleri artık kullanılamaz. Uygulama kapanmadan önce denetimleri kaldırmak istiyorsanız kodunuzu veya BeforeSavegibi BeforeClose başka bir olay işleyicisine ekleyin.

Konak denetimi olaylarına karşı program

Konak denetimlerinin Office nesnelerini genişletme yollarından biri olayları eklemektir. Örneğin, Range Excel'deki nesnede ve Bookmark Word'deki nesnede olaylar yoktur, ancak Office için Visual Studio Araçları çalışma zamanı programlanabilir olaylar ekleyerek bu nesneleri genişletir. Bu olaylara, Windows Forms'daki denetimlerin olaylarına eriştikleri gibi erişebilir ve kodlayabilirsiniz: Visual Basic'teki olay açılan listesi ve C# içindeki olay özelliği sayfası aracılığıyla. Daha fazla bilgi için bkz. İzlenecek yol: NamedRange denetiminin olaylarına karşı program.

Not

Excel'de EnableEvents nesnenin Application özelliğini false olarak ayarlamamalısınız. Bu özelliğin false olarak ayarlanması, Excel'in konak denetimlerinin olayları da dahil olmak üzere herhangi bir olay oluşturmasını engeller.

Ayrıca bkz.