2016-07-29 12 views
0

내 Outlook 추가 기능에서 수동으로 만든 메일의 일부 기능을 지원하기 위해 처음에는 관리자가 사용자 지정 리본 (컨트롤이있는 새 그룹)을 검사자에게 할당합니다. 이 사용자 지정 탭은 저장소 나 폴더에 관계없이 모든 메일 항목을 열 때 표시됩니다. 이 탭을 수동으로 만든 사용자 지정 메일 항목의 관리자에 대해서만 표시하도록 설정합니다.inspector 사용자 지정 리본 컨트롤의 dynamiccaly 변경

다음은 코드에서 관리자의 사용자 지정 UI로 추가 한 xml의 일부입니다. 가시성을 설정하기 위해 실행되도록 콜백 메소드를 추가했습니다 (GetCustomGroupVisible).

<ribbon> 
    <tabs> 
     <tab idMso="TabReadMessage"> 
     <group id="MyCustomGroup" insertBeforeMso="GroupMailDelete" getVisible="GetCustomGroupVisible"> 
      <button id="Button1" size="large" onAction="ButtonClick" /> 
      <button id="Button2" size="large" onAction="ButtonClick" /> 
     </group> 
     </tab> 
    </tabs> 
    </ribbon> 


// Callback method 
public bool GetCustomGroupVisible(IRibbonControl control) 
{ 
    bool makeVisible = false;   
    if (// this is one of my custom mails !) 
     { 
     makeVisible = true; 
     } 
     return makeVisible; 
    } 

내 문제는 위 콜백 방법 "GetCustomGroupVisible"이며, 나는 새로운 관리자를 열 때이라고도되지 않습니다. 왜 이렇게되는거야? 새로운 인스펙터를 열 때마다이 콜백 메소드가 실행되도록하려면 어떻게해야합니까? 내가 뭘 놓치고 있니?

답변

1

NewInspector 이벤트가 발생하면 리본을 강제로 업데이트해야합니다. IRibbonUI.Invalidate를 호출합니다. IRibbonUI는 OnLoad 리본 콜백에서 검색 할 수 있습니다 (리본 XML에 지정해야 함).