VSTO:仅在加载文档时启用功能区按钮

2023-11-29

如何设置 Word 加载项中的功能区按钮在加载文档时启用,在未加载文档时禁用,就像大多数内置按钮一样?

可以将全局标志绑定到按钮的“Enabled”属性,还是比这更复杂?我知道我可以创建一个定时循环来检查 Application.Documents 中的更改,但如果可能的话,我正在寻找“更干净”的东西。

我已经看过了如果未加载文档,则禁用自己的 Word 2007 加载项以及其他相关问题。


有几种方法可以处理这个问题。

首先,您可以创建一个公开的函数,该函数为按钮的启用状态返回 true 或 false(但是您想要确定),然后定义功能区 xml 以指向 Enabled 属性 getter 的该函数。如果您正在处理基于 IExtensibility 的插件,那么这就是您必须采用的方法。

如果您正在处理 VSTO,请在功能区设计器中定义功能区按钮并默认将其设置为禁用。

然后,在 STARTUP 事件期间,挂钩 WORD 对象,特别是 NEWDOCUMENT、DOCUMENTOPEN 和 WINDOWACTIVATE 事件。

在每个事件的事件处理程序代码中,根据触发的事件和当时激活的文档启用或禁用适用的按钮。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VSTO:仅在加载文档时启用功能区按钮 的相关文章

随机推荐

  • 替换嵌套数组 ruby​​ 中的元素

    我无法在代码中找到问题所在 如果特定元素出现在宾果板上 我想用 X 替换它们 class BingoBoard def initialize board bingo board board end def number letter let
  • 如何在C++中默认初始化内置类型的局部变量?

    如何在 C 中默认初始化原始类型的局部变量 例如 如果 a 有一个 typedef typedef unsigned char boolean that s Microsoft RPC runtime typedef 我想更改以下行 boo
  • 从 N 个数中找出最大和第二大的数

    给定 n 个数字 如何使用最多 n log n 次比较找到最大和第二大数字 请注意 这不是 O n log n 而是真正的 n log n 次比较 帕杰顿发表了评论 让我详细说明一下 正如帕杰顿所说 这可以通过锦标赛选择来完成 可以将其视为
  • 移动返回时调用的构造函数而不是复制

    今天我发现这段代码并没有像我期望的那样工作 根据我的知识 对于 L 值 应该调用复制构造函数 而对于 R 值 应该选择移动构造函数 否则目的何在std move它实际上什么也不做 只是转换为 R 值 我正期待着return obj将调用复制
  • GROUP BY DESC 如何选择顺序?

    所以我正在为一家商店创建部分 如果没有 商店可以有多个范围section identifier为给定设置store id它应该回退到全局商店0 我想要的 SQL 命令应该返回一个列表section options对于任何相关的给定商店 我的
  • 按行与按列访问矩阵元素

    一个矩阵A i j 给出 如果我们想将矩阵的元素相加 哪种方法更好 为什么 列明智 row wise 从我的角度来看 行方式更好 因为在数组表示中元素存储在连续的内存位置中 因此访问它们需要更少的时间 但是由于在 RAM 中获取每个位置需要
  • 单击按钮循环浏览 Jlabel 图像时出现 for 循环问题

    在java应用程序中 我有一个Jlabel 每次单击按钮时我想为其分配一个新图像 使用for循环我可以让它只显示最后一个图像 跳过图像之间的所有图像 我知道有一个错误按照我的逻辑 也许我不应该使用 for 循环 任何建议 private S
  • 捕获信号时强制终端不打印 Ctrl 热键

    再会 我正在为我的学校用 C 语言编写自己的 shell 它必须类似于bash尽可能接近 我必须处理 Ctrl 和 Ctrl C 等信号bash做 因此我可以使用signal功能 它工作正常 但问题是每当捕获 Ctrl C 信号时 从第二个
  • Json 对象的最大长度 Asp.net Core 3.1

    虽然这是大约两年前提出的问题 但我仍然面临着这个问题 而且没有办法摆脱它 有没有办法在 Asp net Core 3 1 中设置 JSON 对象的最大大小 在除 Net core 之外的其他 Net 框架中 有一些方法可以做到这一点 或者我
  • 在 Heroku 上的 Rails 应用程序中使用 COPY FROM 和 Postgresql 后端

    我想让用户可以选择在 Ruby on Rails 3 2 应用程序中上传文件 并将数据存入数据库 我想用COPY FROM命令 因为它比插入 ruby 对象更快 If I do User connection execute COPY us
  • 如何在php中通过特殊字符连接两个数组元素值?

    我有两个数组如下 Array 0 gt 2013 07 09 1 gt 2013 07 16 2 gt 2013 07 23 3 gt 2013 07 30 Array 0 gt 2013 07 16 1 gt 2013 07 23 2 g
  • Mongodb 多重嵌套数组搜索

    我的目标是搜索数据userid 1的记录 以下是我的数据 id 2 name test data id 1 file nic userid 1 2 id 2 file nic1 userid 1 id 3 file nick2 userid
  • 单击元素角度 4 外部时隐藏

    我为垂直导航创建了一个侧面菜单 因此我在单击时切换侧面菜单 我需要在单击该菜单之外的任何位置时关闭该菜单 我尝试安装 https github com chliebel angular2 click outside 但由于某种原因它不起作用
  • Spring AOP 在 Java 8 中给出 IllegalArgumentException

    使用 Java 8 和 Spring AOP 4 0 6 我收到以下错误 java lang RuntimeException Error scanning file MonitorAroundPerformance class at or
  • 提交和重定向后输入字段未清空?

    当我想从 jsf 页面 删除飞机 时 如果成功删除飞机 我会重定向到该页面并显示一条警报 告诉用户飞机已成功删除 但是 用户在 h inputText 中输入的值仍然存在 它们不是空的 JSF 页面
  • 使用 __getattr__ 覆盖魔术方法

    我有一个类 它是成员的容器 所有成员都属于同一类型 class A int def init self n super init self n n def do self print adding 10 return self n 10 c
  • .delegate=self 是什么意思?

    谁能解释一下的意思someViewController delegate self and self delegate 他们在哪里帮助我们 代表们发送信息 to you 例如 如果您使用加速度计委托 您将收到有关加速度计的消息 如果您使用新
  • 设计关系数据库 - 使用分层数据模型还是避免使用它们?

    我正在设计一个数据库 我对在关系数据库中使用分层数据模型有一些疑问 如果我想处理类别 子类别和父类别 可以不在关系数据库中使用分层数据模型吗 换句话说 是否可以使用关系方式处理类别 子类别和父类别 顺便说一句 我正在使用 PostgreSQ
  • 使用双重检查锁定实现单例时,我们是否需要 易失性

    假设我们使用双重检查锁来实现单例模式 private static Singleton instance private static Object lock new Object public static Singleton getIn
  • VSTO:仅在加载文档时启用功能区按钮

    如何设置 Word 加载项中的功能区按钮在加载文档时启用 在未加载文档时禁用 就像大多数内置按钮一样 可以将全局标志绑定到按钮的 Enabled 属性 还是比这更复杂 我知道我可以创建一个定时循环来检查 Application Docume