2013-03-12 33 views
5

Excel 2010 eklentilerimden birinde özel bir şerit oluşturmaya çalışıyorum ve bazı nedenlerden dolayı Office bazı önemli ipuçlarını (klavye hızlandırıcıları) geçersiz kılıyor. Office'in bir çakışma görüp görmediğini biliyorum, genellikle bir veya her iki tuş dizisini de "Y", "Y2", "Y3" vb. Olarak geçersiz kılar. Fakat bu örnekte sekmemde yalnızca bir düğme var. ile çatışmak için kontrol edin. İşte Microsoft Office 2010'da Phantom Keytip çakışması Şerit Özel UI

XML'dir: Yerine SampleButton Z bir keytip sahip

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> 
<ribbon> 
    <tabs> 
    <tab id="tabid_1" label="SampleTab" keytip = "B"> 
    <group id="grpid_1" label="SampleGroup"> 
    <button id="btnid_1" label="SampleButton" keytip="Z" /> 
    </group> 
    </tab> 
    </tabs> 
</ribbon> 
</customUI> 

, bu "Y2" ile değiştirildi alır. Bu davranışı, Sekme'nin (şu anda "B") anahtar ipucundan bağımsız olarak görüyorum. "BZ" tuş takımında çelişen, ancak göremeyen başka bir düğme olmadığından emin olmak için kontrol ettim.

Ayrıca, SampleButton'ın "Y" anahtarını yapmaya çalıştığımda bu davranışı görüyorum, ancak bunun, tüm "Y *" tuşlarının çakışmalar için ayrılmasından kaynaklandığını varsayıyorum.

Ayrıca, bu sorunu "C" bir anahtarlık ile de yaşıyordum, ancak açıklanmayan bir nedenle sadece <group> için bir etiketim olmadığında gerçekleşiyordu. <group>'a bir etiket eklediğimde, "C", "Y2" ile geçersiz kılındı. Çok tuhaf davranışlar.

Buna neden olabilecek herhangi bir fikri olan var mı? Şimdiden teşekkürler!

cevap

4

Aynı sorunu yaşıyordum ve yalnızca bir "Z" küçük harfinden "z" küçük harf değerine anahtar ipucu değerini değiştirdim ve işe yaradım. Neden olduğu hakkında bir fikrim yok. Umarım sizin için çalışır.

+1

Çok garip - Bunu denedim sanıyordum ama sanırım değil ... Ama ben alacağım - Teşekkürler! – aFlocker

+0

Maalesef, bu aynı zamanda Alt tuşa bastıktan sonra küçük harf olarak tuş deliklerini de görüntüler. Ancak, şimdiye kadar bulduğum tek çözüm. +1 – oddacorn

+0

Diğer bir seçenek ve devam ettiğim diğer bir seçenek, KeyTip için farklı bir harf veya sayı kullanmaktır. Elbette mevcut olduğunu doğrulamanız gerekir ve şeritte görüntülenmeyen bazı tuş vuruşları, eski Office sürümlerinden gelen kısayollarla uyumluluğu korumak için kullanım için ayrılmıştır. Bazı durumlarda küçük harflerin işe yaraması gerçekten çok tuhaftır, çünkü hangi tuşa bastığınız açısından işlevsel bir fark yoktur. – oddacorn

0

Bu, bir ofis uygulamasında özel (yerleşik olarak değil) sekmeler için standart davranıştır. Bunu test etmek için, UI aracılığıyla sadece birkaç özel sekme ekleyin. sonraki ALT tuşuna basın ve tüm özel sekmelerin Y1, Y2, Y3, hızlandırıcıların nasıl olduğuna dikkat edin ..

Ancak, OP tarafından belirtildiği gibi, bu, keytip özelliği program aracılığıyla veya aracılığıyla ayarlandığında davranış olmamalıdır Eklentinin şerit UI öğeleri için XML. Sadece sınırlı sayıda tuş kombinasyonları ile gerçekleştiği için bir hata olabileceğini hayal ediyorum. Bunu microsoft connect website'da günlüğe kaydetmeyi önerin.

+0

neden SO'ya ait değil? Bir Excel eklentisini programlıyorum ve bu karşılaştığım sorunlardan biri. – aFlocker

+0

Neyse, özel bir Sekmeniz olduğunda ve gerçekten de KeyTip'i (UI aracılığıyla yapamayacağınız bir şey) ayarladığınızda, ya RibbonTab.KeyTip Özelliği'ni ayarlayarak ya da customUI XML dosyasını düzenleyerek, kodunuzda olduğu sürece, Bir çatışma, sadece iyi çalışır. "B" sekmesinde ve "R" tuşu üzerindeki herhangi bir tuşta veya başka bir harfde tuşlara basarsam, bu sadece iyi çalışır.Sadece "C" veya "Z" tuşlarını kullandığımda, bazı çakışmalar olduğunu ve "C" ve "Z" yi "Y2" ile değiştirdiğini düşünürüm ... – aFlocker

+0

Sorun şu ki, çatışma yok (yani aynı anahtar kısayol kümesine sahip başka bir düğme yoktur), ancak hala benim tuş takımım Y # olanları ile değiştirilir. – aFlocker

0

Üzgünüm ama kabul edilen cevap benim için çalışmadı! VSTO çözümümde, bir çalışma ALT-Kısayolunun "G" olduğunu deneysel olarak buldum. Yani benim C# kodu belirlediğim:

Globals.Ribbons.GetRibbon<MyRibbon>().tabMyRibbonTab.KeyTip = "GGG"; 

diğer eklentiler ile çakışmaları en aza indirmek için üç bin dolar kullanın. Bu benim için çalıştı ve SendKeys kullanarak Excel 2007'de RibbonTab'ı seçebiliyordum (bkz. this başka soru).

Saygılarımızla, Jörg