2013-03-12 24 views
5

Sto tentando di creare una barra multifunzione personalizzata in uno dei miei componenti aggiuntivi di Excel 2010 e, per qualche motivo, Office sta sovrascrivendo alcuni dei tasti di scelta rapida (tasti di scelta rapida). So che se Office vede un conflitto di solito sovrascrive uno o entrambi i punti chiave di "Y", "Y2", "Y3", ecc. Ma in questo esempio ho solo un pulsante nella mia scheda quindi non c'è altro controllo per entrare in conflitto con.Conflitto Phantom Keytip nell'interfaccia utente personalizzata della barra multifunzione di Microsoft Office 2010

Ecco l'XML:

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

Al posto della SampleButton avere un suggerimento tasto di scelta di Z, esso viene sostituito con "Y2". Vedo questo comportamento indipendentemente dal suggerimento della scheda (che è attualmente "B"). Ho controllato per assicurarmi che non ci fosse alcun altro pulsante con un suggerimento "BZ" che potrebbe essere in conflitto, ma non ne ho visto nessuno.

Vedo anche questo comportamento se provo a fare in modo che la pressione del tasto SampleButton sia "Y", ma presumo che ciò sia dovuto al fatto che tutti i punti chiave "Y *" sono riservati ai conflitti.

Per inciso, stavo anche avendo questo problema con un keytip di "C", ma per qualche motivo non spiegato che stava accadendo solo quando non avevo un'etichetta per il <group>. Non appena ho aggiunto un'etichetta allo <group>, "C" ha smesso di essere sovrascritto con "Y2". Comportamento molto strano

Qualcuno ha qualche idea che cosa potrebbe causare questo? Grazie in anticipo!

risposta

4

Avevo lo stesso problema e ho finito solo cambiando il valore del keytip da una "Z" maiuscola a una "z" minuscola e ha funzionato. Non ho idea del perché. Spero che funzioni per te.

+1

Così strano - pensavo di averlo provato ma non credo ... lo prenderò comunque - Grazie! – aFlocker

+0

Purtroppo, questo mostra anche i punti chiave come lettere minuscole dopo aver premuto il tasto Alt. Tuttavia, è l'unica soluzione che ho trovato finora. +1 – oddacorn

+0

Un'altra opzione, e una che ho finito con, è usare una lettera o un numero diverso per il KeyTip. Naturalmente è necessario verificare che sia disponibile e alcune sequenze di tasti che non sono visualizzate nella barra multifunzione sono riservate per l'uso per mantenere la compatibilità con i collegamenti da versioni precedenti di Office. È davvero strano che le lettere minuscole funzionino in alcuni casi poiché non c'è alcuna differenza funzionale in termini di quale tasto si preme. – oddacorn

0

Questo è il comportamento standard per le schede personalizzate (al contrario di quelle incorporate) in un'applicazione di ufficio. Per testare questo te stesso basta aggiungere un paio di schede personalizzate attraverso l'interfaccia utente. Successivamente premi il tasto ALT e nota come tutte le schede personalizzate sono Y1, Y2, Y3, acceleratori ..

Tuttavia, come indicato dall'OP, questo non dovrebbe essere il comportamento quando si imposta la proprietà keytip a livello di programmazione o tramite XML per gli elementi dell'interfaccia utente della barra multifunzione. Dal momento che accade solo con un sottoinsieme limitato di combinazioni di tasti, immagino che potrebbe essere un bug. Consiglia di registrarlo su microsoft connect website.

+0

perché non appartiene a SO? Sto programmando un componente aggiuntivo di Excel e questo è uno dei problemi che ho incontrato. – aFlocker

+0

In ogni caso, quando si dispone di una scheda personalizzata e si imposta effettivamente il KeyTip (qualcosa che non è possibile eseguire tramite l'interfaccia utente), tramite codice impostando la proprietà RibbonTab.KeyTip o modificando il file XML personalizzato, purché non sia presente Un conflitto, funzionerà bene. Se faccio il tasto di scelta rapida sulla scheda "B" e il tasto di scelta rapida sul pulsante "R", o qualsiasi altra lettera, funzionerà perfettamente.Solo quando faccio il tasto "C" o "Z", pensa che ci sia qualche conflitto e sostituire "C" e "Z" con "Y2", ecc ... – aFlocker

+0

Il problema è che non c'è conflitto (cioè non ci sono altri pulsanti con lo stesso set di scorciatoie da tastiera) ma sta ancora sostituendo il mio suggerimento con quelli di Y #. – aFlocker

0

Scusa ma la risposta accettata non ha funzionato per me! Nella mia soluzione VSTO ho trovato empiricamente un ALT-Shortcut funzionante è "G". Così nel mio codice C# ho impostato:

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

io uso tre G di minimizzare i conflitti con altri add-Ins. Questo ha funzionato per me e ho anche potuto selezionare il RibbonTab in Excel 2007 utilizzando SendKeys (vedi this altra domanda).

Cordiali saluti, Jörg