2011-01-20 1 views
1

Je construis un Addin Outlook 2007 en utilisant VS2008 en utilisant IRibbonExtensibility.Outlook 2007 Ajout de la valeur d'accès dans editBox sur le ruban personnalisé

Mon ruban simple s'affiche sur un objet MailItem et possède une zone de saisie et un bouton de contrôle. La fonctionnalité requise est que l'utilisateur entre un nombre dans le editBox, puis clique sur le bouton. L'e-mail est ensuite sauvegardé dans un système tiers (en utilisant le numéro entré dans editBox comme "clé primaire" pour contrôler l'emplacement, etc.)

Je suis bloqué sur le point d'accéder à la valeur entrée par l'utilisateur dans le editBox de la fonction de rappel du bouton.

J'ai le balisage de suivi

 <editBox 
      id="FileNumber" 
      maxLength="6" 
      label="File No" 
      /> 

     <button 
      id="AddEmailTo" 
      label="Save to" 
      onAction ="AddEmailToButton_Action" 
      /> 
    </group> 
    </tab> 

Et le rappel suivant

AddEmailToButton_Action public void (Microsoft.Office.Core.IRibbonControl p_Control) {

 //what do I need to add here to access the value in the editBox? 
    } 

Merci andrew

Répondre

3

Vous devez stocker la valeur dans une variable privée avec le rappel onChange

Dans votre classe, déclarez une variable privée pour stocker la valeur de la zone d'édition. Cette variable vous permettra d'obtenir la valeur d'une zone de texte.

private string FileNumberText = "initial value"; 

Pour initialiser une valeur de defaut, utilisez getText rappel

public string onGetText(IRibbonControl control) 
{ 
switch (control.Id) 
{ 
    case "FileNumber":      
     return FileNumberText ; 
    case "editBox02": 
     return "..."; 
    default: 
     return ""; 
}    
} 

Pour enregistrer le changement de editbox (passer la valeur editbox à la variable magasin)

 // Recupere le contenu du controle editBox dans la variable Cible 
     public void RecupDonnee(IRibbonControl control, String Text) 
     { 
      switch (control.Id) 
      { 
       case "FileNumber":      
        FileNumberText = Text.Trim() ; 
        break; 
       case "editBox02": 
        Screen2 = Text.Trim() ; 
        break; 
      }  
     } 

Dans votre ruban XAML

<editBox 
id="FileNumber" 
maxLength="6" 
label="File No"     
getText="onGetText" 
onChange="RecupDonnee" 
screentip="Tip" 
/> 
Questions connexes