Office belgelerindeki Windows Forms denetimlerinin sınırlamaları

Microsoft Office Word belgelerine veya Microsoft Office Excel çalışma sayfalarına eklenen Windows Forms denetimleri ile Windows Forms'a eklenen Windows Forms denetimleri arasında bazı farklar vardır. Örneğin, belgeye denetim Button eklediğinizde , Anchorve TabIndex gibi Docközellikler beklediğiniz gibi davranmaz.

Bu farklılıkların birçoğu, Windows Forms denetimlerinin belgelerde barındırılıyor olması nedeniyle oluşur. Bir belgeye Windows Forms denetimi eklendiğinde, Office çalışma zamanı için Visual Studio Araçları, belgeye Windows Forms denetimini barındıran bir ActiveX denetimi ekler. Windows Forms denetimi doğrudan belgeye eklenmez.

Ş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.

Windows Forms denetimlerinin yöntemlerinin ve özelliklerinin sınırlamaları

Windows Forms denetimlerinin bir belge üzerinde Windows Form'da olduğu gibi çalışmayan bir dizi yöntemi ve özelliği vardır ve bu nedenle kullanılmamaları önerilir. Örneğin ve gibi DockAnchor özelliklerin ayarlanması, belge yerine yalnızca kapsayıcı ActiveX denetimine göre denetimin konumunu etkiler. Word ve Excel için Windows Forms denetimlerinin desteklenmeyen yöntemlerinin ve özelliklerinin listesi aşağıdadır:

Ayrıca, Bir Word belgesindeki Left metinle aynı hizada olan Windows Forms denetimlerinin veya Top özelliğini ayarlayamazsınız. Windows Forms denetimleri aşağıdaki durumlarda metinle aynı hizaya eklenir:

  • Bir Word belgesine program aracılığıyla denetim ekler ve konum için bir aralık belirten bir yöntem kullanırsınız.

  • Tasarım zamanında Word belgesine Windows Forms denetimi eklersiniz. Tasarımcıdaki denetimi değiştirerek bunu değiştirebilirsiniz.

Office belgelerindeki Windows Forms denetimlerindeki farklar

Windows Forms denetimleri genellikle Bir Office belgesinde Windows Form'da olduğu gibi aynı davranışa sahiptir, ancak bazı farklılıklar vardır. Aşağıdaki tabloda, Office belgelerindeki Windows Forms denetimleri için mevcut olan farklar açıklanmaktadır.

İşlev Fark
Denetim sekmesi sırası Excel çalışma sayfasına veya Word belgesine yerleştirilen denetimlerde sekme tuşuyla gezinemezsiniz.
Denetim gruplandırma Office belgesinde başka denetimler içeren bir denetim kullanamazsınız GroupBox . Belgeye doğrudan birden çok radyo düğmesi eklediğinizde, radyo düğmeleri birbirini dışlamaz. Radyo düğmelerini birbirini dışlayan bir kod yazabilirsiniz; ancak tercih edilen yaklaşım, radyo düğmelerini bir kullanıcı denetimine eklemek ve ardından kullanıcı denetimini belgeye eklemektir. Daha fazla bilgi için bkz. Office geliştirme örnekleri ve izlenecek yollarda Word Denetimleri Örneği veya Excel Denetimleri Örneği.
Denetim türü Belgelerde kullanılan Windows Forms denetimleri, Office çalışma zamanı için Visual Studio Araçları tarafından sağlanan ve denetimlere Excel çalışma sayfasına veya Word belgesine özgü ek işlevler sağlayan bir sınıfta sarmalanmıştır. Örneğin, Excel çalışma sayfasında Düğme denetiminiz varsa, nesneye başvururken veya yayınlarken değil Button türü belirttiğinizden Button emin olun.
Kontrol konumu ve boyutu Denetimin boyutu ve konumu, kapsayıcı ActiveX denetiminin parçası olan özelliklere göre belirlenir. ActiveX denetim özellikleri, Windows Forms denetiminin eşdeğer özelliklerinden farklı değerler alır. Denetimin Top, Left, , Heightveya Width özelliklerini ayarladığınızda, bu değer piksel yerine nokta cinsinden ölçülür.
Word belgelerinde denetim konumu Akış tabanlı bir düzene denetimler eklerseniz, içerik değiştikçe denetimlerin içerikle birlikte akacağını unutmayın. Denetim Word belgesine metinle aynı hizada eklendiğinden , denetimi Araç Kutusu'ndan sürüklediğinizde paragrafa bağlayamazsınız. Denetimi eklemek için başka bir yöntem kullanırsanız( örneğin, denetime çift tıklarsanız, denetim, resim eklemek için ayarladığınız Word seçeneğine göre eklenir.

Metinle satır içi olan bir denetimin veya Top özelliğini ayarlayamazsınızLeft.

Üst bilgi veya alt bilgiye veya alt belgeye denetim yerleştiremezsiniz.
Olayları denetleme Denetim seçildiğinde, olayları aşağıdaki sırayla tetikler:

1. Enter
2. GotFocus

Denetim seçimi kaldırıldığında, olayları aşağıdaki sırayla tetikler:

1. Leave
2. Validating
3. Validated
4. LostFocus
Ölçeklendirmeyi denetleme Belgenin yakınlaştırma ayarını %100 dışında bir şeyle değiştirdiğinizde, denetimler devre dışı bırakılır, ancak bunlar belgeyle birlikte ölçeklendiriliyor gibi görünür. Örneğin, belgeniz %130 yakınlaştırmadayken bir düğmeye tıklarsanız, yakınlaştırma %100 olarak ayarlanana kadar denetimin devre dışı bırakıldığını belirten bir ileti gösterilir. Yakınlaştırmayı %100 olarak değiştirdiğinizde denetimler düzgün çalışır.
Özellik değerlerini denetleme Windows Formundaki denetimlerin özellikleri bir tamsayı değerine ayarlanmış olsa da, Word belgesinde denetimler için tek bir değere ayarlanır. Excel'de denetimlerin özellik değerleri çift olarak ayarlanır. Height Çalışma sayfasındaki bir denetimin ve Width özelliği çalışma sayfasının veya ekranın boyutunu aşarsa, değer kesilir.
Yeniden boyutlandırmayı denetleme Sekiz boyutlandırma tutamacından birini kullanarak belgedeki bir denetimi yeniden boyutlandırırsanız, denetim yeniden seçilene kadar yeni denetim boyutları Özellikler penceresine yansıtılmaz.
Denetim davranışı Excel çalışma sayfasındaki denetimler, çalışma sayfası penceresi bölündüğünde öngörülemez şekilde davranabilir. Örneğin, çalışma sayfasında öğesine TextBox erişim yalnızca pencerelerden birinde kullanılabilir.
Denetim adlandırma Denetimleri adlandırmak için ayrılmış sözcükler kullanamazsınız. Örneğin, çalışma sayfasına bir Button ekler ve adı Sistem olarak değiştirirseniz, projeyi oluştururken hatalar oluşur.
Program aracılığıyla denetim ekleme Çalışma zamanında belgenize denetim eklemek için denetimin oluşturucusunu kullanmayın. Bunun yerine, Office çalışma zamanı için Visual Studio Araçları tarafından sağlanan yardımcı yöntemleri kullanın. Örneğin, çalışma sayfasına düğme eklemek için yöntemini kullanın AddButton . Bu yardımcı yöntemler tarafından desteklenmeyen bir denetim eklemek istiyorsanız yöntemini kullanabilirsiniz AddControl . Daha fazla bilgi için bkz . Çalışma zamanında Office belgelerine denetim ekleme.
Denetimleri kopyalama Bir Windows Forms denetimini kopyalayıp çalışma zamanında belgeye yapıştırırsanız, belgeye boş bir Kapsayıcı ActiveX denetimi yapıştırılır. Windows Forms denetimi yeni konumda görünmez ve özgün denetimin arkasındaki kod ActiveX kapsayıcı denetimine kopyalanmaz.

Belge düzeyi projelerindeki sınırlamalar

Belgelerde Windows Forms denetimlerini kullanmanın bazı sınırlamaları belge düzeyi projelere özgüdür.

Tasarım zamanında denetim desteği

Visual Studio tasarımcısında bir Excel çalışma sayfası veya Word belgesi açık olduğunda bazı Windows Forms denetimleri Araç Kutusu'ndan kaldırılır. Bunun nedeni teknik sınırlamalar veya işlevselliğin Word veya Excel'de zaten kullanılabilir olmasıdır. Excel ve Word projeleri, belge odaklandığında Araç Kutusu'nda görüntülenen tüm Windows Forms denetimlerini ve diğer bileşenleri destekler ve ayrıca çalışma sayfasına veya belgeye üçüncü taraf denetimleri de ekleyebilirsiniz.

Not

Belge korunduğunda tüm denetimler Araç Kutusu'ndan kaldırılır. Belge koruması hakkında bilgi için bkz . Belge düzeyinde çözümlerde belge koruması.

Not

Bir Office çözümünde ComVisibleAttribute kullanılabilmesi için üçüncü taraf denetimlerin özniteliği true olarak ayarlanmalıdır.

Aşağıdaki denetimler ve bileşenler Araç Kutusu'nda kullanılamaz:

Eski ActiveX denetimleri desteği

Var olan bir Word belgesini veya ActiveX denetimlerini içeren Excel çalışma kitabını kullanan belge düzeyinde bir Office projesi oluşturursanız, ActiveX denetimlerinin işlevselliği kaybolmaz; ancak, Visual Studio'dan belgelerinize yeni ActiveX denetimleri ekleme desteği yoktur. Örneğin, Word belgenizde Denetim araç kutusunda Visual Basic for Applications (VBA) makrosu çalıştıran bir düğme varsa, belge bir Office projesinde kullanıldıktan sonra makroyu çalıştırmaya devam eder. Ancak, ActiveX denetimlerini ve VBA makrolarını kaldırmanız ve bunları Windows Forms denetimleri ve yönetilen kodla değiştirmeniz önerilir.