繁体   English   中英

是否应将父 window 分配给 Excel 加载项的 VSTO 的自定义任务窗格?

[英]Should a parent window be assigned to a custom task pane for a VSTO for Excel Add-in?

我正在 C# 中的 Visual Studio 2019 中为 Excel 开发 VSTO 加载项。

我正在密切关注这些链接中的 Microsoft 文档:

https://learn.microsoft.com/en-us/visualstudio/vsto/how-to-add-a-custom-task-pane-to-an-application?view=vs-2019

https://learn.microsoft.com/zh-cn/visualstudio/vsto/walkthrough-synchronizing-a-custom-task-pane-with-a-ribbon-button?view=vs-2019

  • 我的自定义功能区可以正常工作。
  • 任务窗格已实例化但从不可见。
  • 我可以以编程方式设置任务窗格的 Visible 属性。 这没有效果。
  • 自定义任务窗格已创建,任务窗格可见性属性的编程 state 可以显示在自定义功能区栏上。
  • 我已经从 Excel 中删除了所有 COM+ 和 Excel 加载项。
  • Excel信任中心勾选“显示所有应用程序插件”。
  • 我正在使用接受Window参数的重载Add方法。 Window参数指定与自定义任务窗格关联的 window。 我试过将其分配给活动工作簿。 这没有效果。

下面是我用来实例化自定义任务窗格的代码。

private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            

            // Help Task Pane
            helpTaskPane = this.CustomTaskPanes.Add(helpControl, 
                                                    "EMPHelpPane",
                                                     Globals.ThisAddIn.Application.ActiveWorkbook);

            helpTaskPane.DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionFloating;
            helpTaskPane.Width = 500;
            helpTaskPane.Height = 500;
            


            helpTaskPane.DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionRight;
            helpTaskPane.Width = 300;

            helpTaskPane.Visible = true;
            
            // Help Pane Events
            helpTaskPane.VisibleChanged += new EventHandler(HelpTaskPaneVisibleChanged);
            helpTaskPane.DockPositionChanged += HelpTaskPane_DockPositionChanged;
        }

我想知道这是否是父 window 问题。 下面的 stackoverflow 帖子有点证实了这一点——但是,他们在创建“Excel 窗口”时创建了一个自定义任务窗格。 我没有看到任何将父 window 分配给自定义任务窗格的代码。

我认为下面帖子中的“Excel 窗口”是指工作表。 但是,我不确定。

Excel VSTO 自定义任务窗格可用性

接下来我要尝试的项目:

  • 我派生了一个自定义的 class,它实现了 CustomTaskPane 接口,并使Window属性可读写。
  • 许多帖子使用Dictionary来跟踪活动的大头钉窗格和每个相关联的 Window。 我正在创建一个从字典派生的 class 以跟上自定义任务窗格。
  • 我将尝试将 CustomTaskPane 与不同类型的“Excel Windows”相关联。
  • 研究切换到商业现成的 Excel 兼容控件。

在.add方法调用中,将ActiveWorkbook改成ActiveWindow

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM