2015-10-06 30 views
0

我正在开发一个Outlook加载项,并使用可视化设计器添加了一些功能区,例如下拉菜单,提交按钮和文本框等,单击提交按钮所选邮件主题并传递到服务,如果选择了一个或多个邮件,禁用Outlook功能区按钮

如果选择了多个邮件项目,那么我想禁用我的按钮控件。在这种情况下,我需要编写代码来禁用按钮?

我试过下面的代码,这段代码正在使用色带加载,但我想调用这个方法来改变邮件的项目选择。不知道如何调用选择更改事件。

private bool IsMoreMailSelected() 
{ 
     bool isSelected = false; 
     outlookObj = new Outlook.Application(); 
     Outlook.Selection mySelection = this.outlookObj.ActiveExplorer().Selection; 
     int iCount = mySelection.Count; 
     if (iCount > 1) 
     { 
      isSelected = true; 
     } 
     else 
     { 
      isSelected = false; 
     } 
     return isSelected; 

    } 

回答

0

您需要处理SelectionChange事件浏览器类,你可以检查多少项目被选中的。当用户(以编程方式或通过用户界面)单击或切换到包含项目的其他文件夹时,也会发生此事件,因为Outlook会自动选择该文件夹中的第一项。示例代码见How to: Programmatically Determine the Current Outlook Item

在事件处理程序中,您可以调用IRibbonUI接口的InvalidateInvalidateControl方法,该方法允许在功能区用户界面上使控件(或单个控件)的缓存值无效。因此,您将重新调用Ribbon XML标记中定义的回调。有关更多信息,请参阅Overview of the IRibbonUI Object

getEnabled回调中,您只需要返回false来禁用该控件。色带UI(又名流利UI)进行了详细描述MSDN在以下系列文章:

相关问题