2 回答

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
Ribbon UI 是靜態(tài)的,因?yàn)樗趩?dòng)時(shí)(或在窗口顯示之前)加載一次。您能做的最好的事情就是定義回調(diào)并在您需要的地方調(diào)用它們。例如,您可以為功能區(qū)控件定義“getVisible”回調(diào),而不是在運(yùn)行時(shí)添加新元素。
IRibbonUI.Invalidate方法使 Ribbon 用戶界面的所有控件的緩存值無效。
您可以使用 COM 加載項(xiàng)中的回調(diào)過程來自定義功能區(qū) UI。對(duì)于加載項(xiàng)實(shí)現(xiàn)的每個(gè)回調(diào),都會(huì)緩存響應(yīng)。
例如,如果外接程序編寫器為按鈕實(shí)現(xiàn) getImage 回調(diào)過程,則調(diào)用該函數(shù)一次,加載圖像,然后如果需要更新圖像,則使用緩存的圖像而不是調(diào)用該過程。此過程將保持不變,直到加載項(xiàng)使用 Invalidate 方法發(fā)出信號(hào)表明緩存的值無效,此時(shí)將再次調(diào)用回調(diào)過程并緩存返回響應(yīng)。然后,加載項(xiàng)可以通過調(diào)用 Refresh 方法強(qiáng)制立即更新 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貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
您必須告訴 Outlook 刷新功能區(qū)。
您需要指定一個(gè)回調(diào)來檢索按鈕的標(biāo)題,而不是將其硬編碼到功能區(qū)的 XML 中。
請(qǐng)注意,由于您可以打開多個(gè)檢查器,因此您必須提供在其自己的檢查器中打開的每個(gè)項(xiàng)目的特定數(shù)據(jù)。
- 2 回答
- 0 關(guān)注
- 171 瀏覽
添加回答
舉報(bào)