在 XML 功能区中以编程方式访问功能区控件

2024-01-12

对于使用 C# 4.0 对 Office 加载项进行编程,Microsoft 提供了两种不同的方法来创建和/或修改 Ribbon 界面:您可以使用丝带设计师 http://msdn.microsoft.com/en-us/library/bb386089.aspx或定义功能区的布局功能区 XML http://msdn.microsoft.com/en-us/library/aa942866.aspx.

如果您使用功能区设计器创建功能区,则在后面的代码中生成的类可以看到您放置在功能区上的所有控件。因此,如果我放置了一个名为“dropdown1”的 RibbonDropDown,我可以使用以下代码向其中添加一个项目:

RibbonDropDownItem item = Factory.CreateRibbonDropDownItem();
item.Label = submatrix.Name;
item.Tag = submatrix;
this.dropDown1.Items.Add(item);

但是,如果您使用功能区 XML 创建相同的功能区,则找不到 dropDown1 或 Factory(“当前上下文中不存在该名称”)。

有没有办法在代码中访问添加到功能区 XML 定义功能区的项目?


可能有点晚了,但希望这对某人有帮助。

我对同样的问题感到非常困惑。事实证明,您只能以字符串 ID 的形式访问这些控件,并且该模型对失效事件非常重视。例如,当您通过 onAction 方法单击按钮时,您只能从控件对象中获得发送者的 id,但是,在此事件处理程序中,您可以使其他控件无效并使用以下命令调用它们的事件:

ribbon.InvalidateControl("MyCtl");

看看这个,它拥有启动和运行所需的一切

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

在 XML 功能区中以编程方式访问功能区控件 的相关文章

  • ADO.Net (Azure AD) 错误“不支持关键字:身份验证”

    我正在尝试通过 C 代码使用 Azure AD 凭据连接到 Azure 数据库 代码如下 它在我的系统上运行良好 但是当我将它部署到32位VM时 它显示错误 不支持关键字 身份验证 VM 安装了 Net Framework 4 5 但未安装
  • C# 4.0 中的“动态”类型有何用途?

    C 4 0 引入了一种称为 动态 的新类型 听起来不错 但是程序员会用它做什么呢 有没有什么情况可以挽救局面 The dynamic添加了关键字以及 C 4 0 的许多其他新功能 以便更轻松地与具有不同 API 的其他运行时中或来自其他运行
  • 使用OLEDB从Stream读取AccessFile到DataSet

    我使用 Oledb 将 AccessFile accdb 读取到 DataSet 我不知道表名或列 常规实现是 public void GetAccessDB string filepath this ConnectionString Pr
  • 在 C#4.0 中从字符串构建 Linq 查询 - 最佳实践

    目前 我正在使用 LinqKit Ms 动态查询示例从字符串动态构建 Linq 表达式 这很好用 LinqKit http www albahari com nutshell linqkit aspx http www albahari c
  • LinqToExcel:Excel 列中的不同值

    对于各位专家来说 这可能是一件非常简单的事情 但我对 C 4 和 INTEROP 并不熟悉 因此 我很困惑 这是我的问题 我有一个包含重复数据的 Excel 列 我想将其修剪为仅具有唯一值 数据如下所示 ColA ColB 10 Adam
  • C# 对由线程池处理的相关任务进行排队

    我想将需要按顺序处理的多个流中的相关任务 在每个流中 排队 这些流可以并行处理 具体来说 假设我需要两个队列 并且我希望每个队列中的任务按顺序处理 以下是示例伪代码 用于说明所需的行为 Queue1 WorkItem wi1a enqueu
  • 使用反射设置枚举

    如何使用反射设置枚举 我的班级有枚举 public enum LevelEnum NONE CRF SRS HLD CDD CRS 在运行时我想将该枚举设置为 CDD 例如 我该怎么做 尝试使用类枚举 LevelEnum s LevelEn
  • 使用宏将word文档中的公式转换为图像

    我有这个宏可以将文档中的所有形状转换为图像 Dim i As Integer oShp As Shape For i ActiveDocument Shapes Count To 1 Step 1 Set oShp ActiveDocume
  • 正则表达式 .net 分割

    我可以根据 2 个空格将字符串分成两部分 string Line 1 2 Regex Split Line gt 1 2 我想添加一个例外 仅当 未用 括起来 时才拆分 如此例所示 string Line 1 2 1 2 Regex Spl
  • ASP.NET MVC 4 cookie 消失

    我有一个 ASP NET 应用程序 它将身份验证 cookie 发送到 ASP NET MVC 应用程序 用作后台应用程序 我添加了一个全局过滤器 用于检查身份验证 cookie 的每个控制器操作 如果cookie存在 则允许用户进入该页面
  • C#“as”与“()”转换[重复]

    这个问题在这里已经有答案了 为什么在这种情况下兼容引用类型之间的转换会编译 Excel 2010 Net 4 5 using Excel Microsoft Office Interop Excel Excel Application ex
  • 将耗时的进程从我的 ASP.NET 应用程序中移走

    我的 Asp net 应用程序生成动态 pdf 有时这需要一段时间 并且是一个相当繁重的过程 实际上我不希望我的用户等待pdf 只需在生成后将其发送到那里的邮件即可 所以我尝试了网络服务 我将一个 id 从数据库获取数据 和一些字符串传递给
  • 如何防止用户杀死C#应用程序[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果您使用 ESET Smart S
  • 消除启动时的安全警告

    打开任何 MS Access 数据库时 都会出现安全警告 指出该文件可能对计算机有害 但是 有没有办法删除此消息 或者它应该仍然是一种必要的罪恶 您也许可以签署您的程序 我不确定 读本文 http www howto outlook com
  • 在 MS Excel 中为字符分配一个值并执行字符串(具有字符)的数学函数(+、-、*、/)

    我想根据给定字符串 ABCDEF 的预分配值对其进行求和 即首先我想为每个字符分配值 然后计算具有预先分配的字符的字符串的总值 excel中可以实现这个功能吗 例如 在下面 A 2 B 5 C 8 D 1 E 1 F 2 sum of AB
  • 如何在代码中访问 DataGridCell 的数据对象?

    基本上 我已经绑定了数据网格 使其类似于科目时间表 每行代表一个学期的科目 该学期内的每个单元格代表一个科目 我现在尝试添加拖放功能 以便您可以将其他主题拖到网格上 这将更新底层数据结构 我可以使用一些可视化树方法来查找用户将新主题拖动到的
  • 如何在 MVC 3 Razor 中显示解码后的编码 HTML?

    我在 MVC 3 和 Asp net C 中使用 Razor 我有一个带有以下代码的视图 model ContentBody有一些 HTML 标签 我需要将此 HTML 内容显示为DECODED 我该如何更改视图中的代码 div class
  • 如何从办公文档迁移到基于现代网络技术的文档 - 欢迎建议

    目前 所有文档均基于 MS Office 如果您想集成某些功能 这将变得非常具有挑战性 然后您可以选择使用 VBA 或 VSTO 第一个不太舒服 第二个可能就像拿大锤敲碎坚果一样 简单的控件 隐藏文本或基本数学等简单的事情都可以通过 HTM
  • 按日期计算 Outlook 中的电子邮件

    我有以下代码来计算 Outlook 文件夹中的电子邮件数量 Sub HowManyEmails Dim objOutlook As Object objnSpace As Object objFolder As Object Dim Ema
  • 关于c#中|=的问题

    C 中 是什么意思 Example int a 0 int b a 5 我找不到任何这方面的提示 OR 赋值运算符 完整的解释在这里 http msdn microsoft com en us library h5f1zzaw v vs 7

随机推荐