Konak öğelerine ve konak denetimlerine genel bakış

Konak öğeleri ve konak denetimleri, Visual Studio'daki Office geliştirme araçları kullanılarak oluşturulan Office çözümleri için programlama modelini 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çirmeyi 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ı 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ğlar, böylece belirli bir belgenin olaylarını işlemek daha kolay olur.

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 öğeleri, Document Windows Forms tasarımcısı gibi belgenin veya çalışma sayfasının görsel gösterimi olan ilişkili tasarımcılara sahiptir. 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ı, gibi bir bileşeni tasarım yüzeyine 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 projelerinde program aracılığıyla oluşturulamaz. Bunun yerine, Visual Studio'nın ThisDocumenttasarım zamanında projenizde 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 Eklentilerinde , 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 . Çalışma zamanında VSTO Eklentilerinde Word belgelerini ve Excel çalışma kitaplarını 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

    Word projeleri için aşağıdaki konak denetimleri 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 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, konak denetiminin NamedRange 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 denetim Worksheet yerleştirirsinizNamedRange. Aşağıdaki çizimde konak öğeleri ve 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 belgeleri üzerindeki Windows Forms denetimlerine genel bakış.

Not

Bir Word alt belgesine konak denetimleri veya Windows Forms denetimleri eklenmesi desteklenmez.

Belgelerinize konak denetimleri ekleme

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

Ana bilgisayar denetimlerini adlandırma

Araç Kutusu'ndan belgenize bir konak denetimi sürüklediğinizde, denetim türü sonunda artımlı bir sayı ile kullanılarak otomatik olarak adlandırılır. Ö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, Özellikler penceresindeKimlik ö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.

Belgeye tasarım zamanında konak denetimi eklerseniz, denetimi kodda kullanmayı bir sonraki denemenizde ö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 eklenip eklenmediğini başarıyla siler NamedRange . Bu yöntem, 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 denetimlerinin silinmesini 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şletmenin bir yolu olayları eklemektir. Örneğin, Range Excel'deki nesnenin ve Bookmark Word'deki nesnenin olayları yoktur, ancak Office çalışma zamanı Visual Studio Araçları 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ği false olarak ayarlamak, Excel'in konak denetimlerinin olayları da dahil olmak üzere tüm olayları oluşturmasını engeller.