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:仅在加载文档时启用功能区按钮 的相关文章

  • VLC 媒体播放器有 C# 界面吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否可以使用 C 控制台应用程序中的包装器从 VLC 播放中当前播放的文件中读取曲目统计信息 时间 标
  • 如何从字符串中提取子字符串直到遇到第二个空格?

    我有一个像这样的字符串 o1 1232 5467 1232 5467 1232 5467 1232 5467 1232 5467 1232 5467 如何仅提取 o1 1232 5467 要提取的字符数并不总是相同 因此 我只想提取直到遇到
  • C# SmtpClient编程中如何设置带有中文的附件文件名?

    我的代码如下 ContentType ct new ContentType ct MediaType MediaTypeNames Application Octet ct Name 这是一个很长的中文文件名希望能用它在附件名中 Doc A
  • 静态构造函数和 BeforeFieldInit?

    如果类型没有静态构造函数 则将执行字段初始值设定项 就在使用该类型之前 或者在某个时间点突发奇想 运行时 为什么这段代码 void Main start Dump Test EchoAndReturn Hello end Dump clas
  • 是否可以使用 http url 作为 DirectShow .Net 中源过滤器的源位置?

    我正在使用 DirectShow Net 库创建一个过滤器图 该过滤器图通过使用 http 地址和 WM Asf Writer 来流式传输视频 然后 在网页上 我可以使用对象元素在 Windows Media Player 对象中呈现视频源
  • 关于逻辑/算法的想法以及如何防止线程写入 Sql Server 中的竞争

    我有以下逻辑 public void InQueueTable DataTable Table int incomingRows Table Rows Count if incomingRows gt RowsThreshold async
  • 如何在 C# 中将 Json 转换为对象

    我想将 Json 转换为 C 中的对象 这里的 Json 是 值 e920ce0f e3f5 4c6f 8e3d d2fbc51990e4 如何使用 Object 问题看似愚蠢 但其实并不那么愚蠢 我没有简单的 Json 我有 IEnume
  • 混合模型优先和代码优先

    我们使用模型优先方法创建了一个 Web 应用程序 一名新开发人员进入该项目 并使用代码优先方法 使用数据库文件 创建了一个新的自定义模型 这 这是代码第一个数据库上下文 namespace WVITDB DAL public class D
  • 如何向 Mono.ZeroConf 注册服务?

    我正在尝试测试 ZeroConf 示例http www mono project com Mono Zeroconf http www mono project com Mono Zeroconf 我正在运行 OpenSuse 11 和 M
  • OpenGL:如何检查用户是否支持glGenBuffers()?

    我检查了文档 它说 OpenGL 版本必须至少为 1 5 才能制作glGenBuffers 工作 用户使用的是1 5版本但是函数调用会导致崩溃 这是文档中的错误 还是用户的驱动程序问题 我正在用这个glGenBuffers 对于VBO 我如
  • Unity手游触摸动作不扎实

    我的代码中有一种 错误 我只是找不到它发生的原因以及如何修复它 我是统一的初学者 甚至是统一的手机游戏的初学者 我使用触摸让玩家从一侧移动到另一侧 但问题是我希望玩家在手指从一侧滑动到另一侧时能够平滑移动 但我的代码还会将玩家移动到您点击的
  • Linux 上的 RTLD_LOCAL 和dynamic_cast

    我们有一个由应用程序中的一些共享库构成的插件 我们需要在应用程序运行时更新它 出于性能原因 我们在卸载旧插件之前加载并开始使用新插件 并且只有当所有线程都使用旧插件完成后 我们才卸载它 由于新插件和旧插件的库具有相同的符号 我们dlopen
  • LinkLabel 无下划线 - Compact Framework

    我正在使用 Microsoft Compact Framework 开发 Windows CE 应用程序 我必须使用 LinkLabel 它必须是白色且没有下划线 因此 在设计器中 我将字体颜色修改为白色 并在字体对话框中取消选中 下划线
  • 如何在 Javascript 中连接 C# ActiveX 事件处理程序

    我尝试使用几个代码片段将 ActiveX 对象与 Javascript 事件处理程序挂钩 我无法确定为什么事件处理程序没有被调用 带有项目的 Github 存储库 https github com JesseKPhillips Csharp
  • 如何从 Boost.PropertyTree 复制子树

    我有一些boost property tree ptree 我需要树来删除一些具有特定标签名称的元素 例如 xml 表示源ptree如下
  • 调用 .ToArray() 时出现 ArgumentException

    我有一个经常被清除的列表 代码完全是这样的 VisitorAgent toPersist List
  • 构建 C# MVC 5 站点时项目之间的处理器架构不匹配

    我收到的错误如下 2017 年 4 月 20 日构建 13 23 38 C Windows Microsoft NET Framework v4 0 30319 Microsoft Common targets 1605 5 警告 MSB3
  • winform c# 中的弹出窗口

    我正在开发一个需要弹出窗口的项目 但问题是我还希望能够通过表单设计器在此弹出窗口中添加文本框等 所以基本上我有一个按钮 当您单击它时 它将打开我在表单设计器中设计的另一个窗口 我一直在谷歌搜索 但还没有找到我需要的东西 所以我希望你们能帮助
  • 如果找不到指定的图像文件,显示默认图像的最佳方式?

    我有一个普通的电子商务应用程序 我将 ITEM IMAGE NAME 存储在数据库中 有时经理会拼错图像名称 为了避免 丢失图像 IE 中的红色 X 每次显示产品列表时 我都会检查服务器中是否有与该产品相关的图像 如果该文件不存在 我会将其
  • 如何在 ASP.NET Core 中注入泛型的依赖关系

    我有以下存储库类 public class TestRepository Repository

随机推荐

  • 替换嵌套数组 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