首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel-DNA -模板化CustomTaskPane异常

Excel-DNA -模板化CustomTaskPane异常
EN

Stack Overflow用户
提问于 2015-01-20 01:09:13
回答 1查看 1K关注 0票数 3

我在Excel-DNA 0.32遇到了CustomTaskPaneFactory最奇怪的问题。

当我创建具有从模板化任务窗格(MyCTP<T>)继承的类(MyIntCTP)的任务窗格时,CustomTaskPaneFactory会引发异常。

下面是一个说明上下文的示例:

代码语言:javascript
复制
<DnaLibrary RuntimeVersion="v4.0" Language="CS">
<Reference Path="System.Windows.Forms.dll" />
<![CDATA[
    using ExcelDna.Integration;
    using ExcelDna.Integration.CustomUI;
    using System.Windows.Forms;

    internal class ThisAddIn : IExcelAddIn
    {
        public void AutoOpen()
        {
            var p = CustomTaskPaneFactory.CreateCustomTaskPane(typeof(MyIntCTP), "o");
            p.Visible = true;
        }
        public void AutoClose()
        { }
    }

    public class MyCTP<T> : UserControl
    { }
    public class MyIntCTP : MyCTP<int>
    { }
]]>
</DnaLibrary>

上面的代码不起作用。具有以下System.Runtime.InteropServices.COMExceptionCreateCustomTaskPane上的Excel-DNA崩溃

代码语言:javascript
复制
Unable to create specified ActiveX control
   at ExcelDna.Integration.CustomUI.ICTPFactory.CreateCTP(String CTPAxID, String CTPTitle, Object CTPParentWindow)
   at ExcelDna.Integration.CustomUI.CustomTaskPaneFactory.CreateCustomTaskPane(String controlProgId, String title, Object parent)
   at ExcelDna.Integration.CustomUI.CustomTaskPaneFactory.CreateCustomTaskPane(Type userControlType, String title, Object parent)
   at ExcelDna.Integration.CustomUI.CustomTaskPaneFactory.CreateCustomTaskPane(Type userControlType, String title)
   [...]

但是,如果父任务窗格(MyCTP)实现了一个接口,则它确实可以工作(请注意,所有类都标记为公共):

代码语言:javascript
复制
public interface DummyInterface
{ }
public class MyCTP<T> : UserControl, DummyInterface
{ }

我不需要界面,但我想保留模板。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2015-10-16 00:34:57

我也遇到过同样的问题。

解决方案是com可见性,然后它将传递COM(Active X)对象。

代码语言:javascript
复制
   [ComVisible(true)]
   public class MyIntCTP : MyCTP<int>
   { }

尝试下面的链接,它们会给你一个概述,这将会有所帮助。https://msdn.microsoft.com/en-us/library/aa942861.aspx

请看一下下面给出的git链接,以帮助进行项目。https://github.com/KevinT/ExcelDna/blob/master/Distribution/Samples/CustomTaskPane.dna

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28030009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档