Outlook 2007在自定义功能区上的编辑框中添加访问值

时间:2011-01-20 03:30:02

标签: c# visual-studio-2008 vsto outlook-addin

我正在使用VSib8使用IRibbonExtensibility构建一个Outlook 2007 Addin。

我的简单功能区显示在MailItem上,并有一个editBox和一个按钮控件。所需的功能是用户在editBox中输入一个数字,然后单击该按钮。然后将电子邮件消息保存到第三方系统中(使用在editBox中输入的数字作为“主键”来控制位置等)

我在访问用户从按钮的回调函数进入editBox的值时遇到了困难。

我有跟随标记

        

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

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

以下回调

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

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

由于 安德鲁

1 个答案:

答案 0 :(得分:3)

您需要使用回调onChange

将值存储在私有变量中

在您的班级中,声明一个私有变量来存储编辑框的值。 此变量将允许您获取文本框的值。

private string FileNumberText = "initial value";

要初始化defaut值,请使用getText回调

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

记录编辑框的更改(将编辑框值传递给商店变量)

        // 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;
            }       
        }

在功能区XAML中

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