2 回答

TA貢獻1842條經驗 獲得超13個贊
Ribbon UI 是靜態的,因為它在啟動時(或在窗口顯示之前)加載一次。您能做的最好的事情就是定義回調并在您需要的地方調用它們。例如,您可以為功能區控件定義“getVisible”回調,而不是在運行時添加新元素。
IRibbonUI.Invalidate方法使 Ribbon 用戶界面的所有控件的緩存值無效。
您可以使用 COM 加載項中的回調過程來自定義功能區 UI。對于加載項實現的每個回調,都會緩存響應。
例如,如果外接程序編寫器為按鈕實現 getImage 回調過程,則調用該函數一次,加載圖像,然后如果需要更新圖像,則使用緩存的圖像而不是調用該過程。此過程將保持不變,直到加載項使用 Invalidate 方法發出信號表明緩存的值無效,此時將再次調用回調過程并緩存返回響應。然后,加載項可以通過調用 Refresh 方法強制立即更新 UI。
<customUI … OnLoad="MyAddinInitialize" …>
Dim MyRibbon As IRibbonUI?
Sub MyAddInInitialize(Ribbon As IRibbonUI)?
?Set MyRibbon = Ribbon?
End Sub?
Sub myFunction()?
?MyRibbon.Invalidate() ' Invalidates the caches of all of this add-in's controls?
End Sub

TA貢獻1796條經驗 獲得超7個贊
您必須告訴 Outlook 刷新功能區。
您需要指定一個回調來檢索按鈕的標題,而不是將其硬編碼到功能區的 XML 中。
請注意,由于您可以打開多個檢查器,因此您必須提供在其自己的檢查器中打開的每個項目的特定數據。
- 2 回答
- 0 關注
- 172 瀏覽
添加回答
舉報