ms-office - 加载功能区后更改功能区菜单属性
问题描述
我构建了一个 VSTO(使用 Ribbon Designer 制作,不使用 Ribbon XML)。是否可以从 更改选项卡的属性(如标签)Ribbon1.cs
?
我什至无法更改功能区标题:
private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
{
myRibbon.Label = "something";
}
解决方案
动态执行此操作的方法是使用回调。
在您的功能区 XML 中:
<tab id="myTabID" getLabel="myCallback">
....
</tab>
在您的功能区代码中:
public string myCallback(IRibbonControl control)
{
switch (control.Id)
{
case "myTabID":
return "My Label";
case "whatever else":
default:
return "n/a";
}
}
只要显示选项卡,回调就会执行,因此可能在启动时。当您真正想要更改显示的内容时,您必须使其无效:
ribbon.Invalidate();
// or
ribbon.InvalidateControl(id);
推荐阅读
- html - 使用 CSS 将 HTML 表格列组合在一起
- firebase - null an 在 Flutter 中显示,但在 Future 中具有正确的值
- javascript - 将 React 组件作为可嵌入的小部件提供给用户
- reactjs - 在 React 中使用 useState 计算日期的示例
- python - 如何将日期值映射到 Python 中的时间戳范围?
- avi - SubRip、AVISubDetector、AviSynth 中的 RGB24 错误
- angular - 错误 TS2740:类型“可观察”
' 缺少类型 'ProjectPage[]' 的以下属性:length、pop、push、concat 和另外 25 个 - sql - Postgresql 更新非标签视图列
- php - 根据 PHP 中的项目哈希从会话中删除项目
- javascript - Big-O for while 循环没有预定义的迭代次数