gpt4 book ai didi

excel - VSTO - Word 和 Excel 的共享插件以修改功能区

转载 作者:行者123 更新时间:2023-12-04 20:20:48 27 4
gpt4 key购买 nike

我已成功使用 Visual Studio 2008 中的 Excel 和 Word 插件模板创建了一个添加到功能区的项目,但我在使用共享插件时遇到了困难。我创建了一个插件,它使用 xml 文件来修改和添加到功能区,我可以从添加的按钮中捕获事件,但我一生无法弄清楚如何隐藏按钮或添加控件。启动并运行。基本上我需要某种对功能区的引用,而我所能得到的只是对实现 IRibbonUi 的对象的引用,这无济于事。有没有人有任何好的共享加载项示例或建议?

最佳答案

有两种可能的方法来控制功能区控件的可见性。您可以使用 visible 属性或 getVisible 事件。这两种方法都需要修改您已经在使用的 xml 文件。

如果这是您现在的部分 xml 文件:

<button id="MyButton" label="Hello" onAction="MyButtonOnAction"/>

然后,您可以通过将控件更改为:
<button id="MyButton" label="Hello" onAction="MyButtonOnAction" visible="false"/>

这没什么用,因为它是硬编码的。为了更接近您要查找的内容,请将 xml 更改为:
<button id="MyButton" label="Hello" onAction="MyButtonOnAction" getVisible="MyButtonGetVisible"/>

然后以与完成 MyButtonOnAction 回调相同的方式创建 MyButtonGetVisible 回调,该回调恰好具有此签名(C#):
bool MyButtonGetVisible(IRibbonControl control)

使用此方法,您可以根据是否要显示/隐藏按钮返回 true 或 false。您可能遇到的下一个问题是,MyButtonGetVisible 回调仅在加载我的加载项后立即调用一次。我想稍后显示/隐藏按钮,如何让回调触发?

为此,您可以使用您拥有的 IRibbonUI 对象并调用 Invalidate 函数,这将导致整个功能区失效,这将导致调用回调。如果您需要更精细的控制,您可以调用 InvalidateControl 函数,该函数将 ControlID 作为参数,并且只会使一个控件无效,这将导致调用回调。

至于即时添加控件,我认为这是不可能的。

我建议的其他资源:
Part 1
Part 2
Part 3

关于excel - VSTO - Word 和 Excel 的共享插件以修改功能区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1133846/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com