2015-10-06 61 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在以下系列文章:

相關問題