2010-12-09 2 views
2

Je suis en train de coder un ajout Excel et j'aimerais que mes boutons de ruban soient désactivés lorsque l'utilisateur clique sur (modifie) une cellule. Je vois cela se produire avec d'autres boutons de ruban dans Excel et dans le TFS Excel ajouter donc j'espère que d'autres développeurs peuvent y arriver. Y a-t-il un moyen de déterminer/gérer quand une édition commence/se termine (c'est-à-dire en double-cliquant/en tapant Entrée/Frapper Escape)?Excel VSTO - Désactiver RibbonButton pendant la modification de cellule

Je pensais pouvoir activer/désactiver manuellement les boutons pendant ces événements. Je me demandais si la technique décrite ici http://www.codeproject.com/KB/office/Excel_Edit_Mode.aspx est le meilleur moyen de détecter si une cellule est en cours d'édition?

Toute indication serait grandement appréciée.

Merci

Répondre

2

Voici ce que je l'ai fait pour atteindre le même objectif que vous.

J'ai créé un ensemble de minuterie pour 500ms Dans le gestionnaire d'événements pour la minuterie, j'effectue le contrôle suivant

if (Globals.ThisAddIn.Application.Ready) 
{ 
    SetRibbonState() 
} 

Où SetRibbonState est quelque chose comme ceci:

private void SetRibbonState() 
{ 
    if (IsEditing()) 
    { 
      buttonRefresh.Enabled = false; 
    } 
    else 
    { 
      buttonRefresh.Enabled = true; 
    } 
} 

public static bool IsEditing() 
{ 
    return !Globals.ThisAddIn.Application.CommandBars.GetEnabledMso(FileNewDefaultIdMso); 
} 
2

Désolé pour la fin répondre. Je viens de tomber sur votre question.

Je voulais le même comportement dans mon projet et j'intégré succesfuly cette solution:

http://www.codeproject.com/KB/office/ExcelInEditMode.aspx

Il était indolore et fonctionnait très bien. J'ai juste ajouté la classe dans mon projet, créé une instance de celui-ci et attaché des événements aux événements EditModeOff et EditModeOn.

espoir qui aide (vous ou quelqu'un d'autre)

Questions connexes