VSTO可以更新/刷新Office 2007功能区XML菜单控件吗?

本文关键字:XML 功能区 菜单 控件 2007 Office 更新 刷新 VSTO | 更新日期: 2023-09-27 18:19:05

我已经在Office 2007中使用带XML的Ribbon向收到的邮件项的检查器添加控件。

我现在想添加一个菜单/组合框。问题是生成项目列表花费的时间太长。

基本上是可能的,让功能区生成,然后添加项目一旦他们准备好了吗?

我设想如下:

  1. 创建带空菜单的功能区
  2. 启动一个新线程并发送它以获取数据(线程安全的东西没有办公室)
  3. 回到办公室线程,并将列表添加到菜单

这是可能的吗?

VSTO可以更新/刷新Office 2007功能区XML菜单控件吗?

恕我直言,这很难实现。在标准色带控件中,值是静态的。在实际显示功能区之前,它们被加载到控件中。我不确定是否有办法拦截它

似乎可以使用DynamicMenu控件。下面是我的答案,我是这样做的。

  1. 让office显示UI(在这个例子中是Outlook Inspector)
  2. 获取Email Item的文本,然后启动一个新线程来处理
  3. 当处理完成后返回到主UI线程。
  4. 在Ribbon XML中存在一个"空的"DynamicManu,并为其数据提供回调
  5. 如果结果是没有数据,则调用invalidate, getVisible回调将控件设置为false。控制消失。
  6. 如果有数据要添加,那么无效并允许控件现在在回调中读取数据。

我要感谢我的秘书编辑我的帖子