2011-06-01 214 views
0

看起来,自定义任务窗格在Excel进程中的所有工作簿之间共享,因为CustomTaskPanes属性位于加载项对象级别,因此它在所有工作簿之间共享。 (对不对?)
我需要在任务窗格中为不同的工作簿显示不同的内容,我该如何实现?CustomTaskPanes需要说明

回答

1

您是对的,自定义任务窗格是在应用程序级别注册的。

开箱即用,您必须使用功能区设计器,如果您不创建功能区,它并不重要,但它是实现所需功能的最佳方式。 在功能区的加载事件中,如果未注册任务窗格,则需要访问Globals.ThisAddin.CustomTaskPanes以注册您的任务窗格,然后根据当前上下文更新内容。关于我的头顶,我不确定您需要挂钩哪些事件,但可能需要知道何时激活/选择新工作簿并更新任务窗格。

我一直在试图解决这种断开问题的项目(VSTO Contrib),RibbonFactory将允许您为对象/功能区类型(Word.Document,Outlook.Appointment等)注册视图模型,您可以简单地从IRegisterCustomTaskPanes继承以为该工作簿/文档/任何其他上下文连接自定义任务窗格。它会照顾你的所有同步。有一个阅读它可以做什么在http://jake.ginnivan.net/vsto-contrib/ribbon-factory 随时与我联系或张贴在这里获取更多信息。