使用VSTO访问Outlook中功能区内的控件

时间:2016-09-08 10:52:26

标签: c# outlook vsto

我正在尝试访问builtIn功能区中的标签并尝试更改其在后台工作程序中的可见性。但它不起作用。

我的代码是

Globals.Ribbons.MailReadItemRibbon.verifyLabel.Visible = true;

如果有人知道我做错了什么。请帮忙。

1 个答案:

答案 0 :(得分:0)

首先,您不应该从辅助线程访问任何UI控件。允许仅对主线程上的UI进行任何更改。您可以考虑使用Control.Invoke方法在拥有控件底层窗口句柄的线程上执行委托。

其次,Fluent UI(又名Ribbon UI)从诞生开始就是一个静态的东西。唯一可能的动力是回调。所以,我建议使用IRibbonUI的InvalidateInvalidateControl方法来回调。请查看以下文章中的示例代码:

对于加载项实现的每个回调,都会缓存响应。例如,如果加载项编写器为按钮实现getImage回调过程,则调用该函数一次,加载图像,然后如果需要更新图像,则使用缓存图像而不是调用过程。此过程保持原位,直到加载项通过使用Invalidate方法表示缓存值无效,此时,再次调用回调过程并缓存返回响应。

Fluent UI(又名Ribbon UI)将在以下系列文章中进行深入介绍: