代码之家  ›  专栏  ›  技术社区  ›  Dov

设计器中通用表单不起作用的具体实现

  •  1
  • Dov  · 技术社区  · 16 年前

    public abstract partial class BaseFormClass<R> : XtraForm where R : DataRow
    {
      ...
    }
    

    与我在其他地方读到的相反,我仍然能够设计这个类。我不必从它创建一个具体的类。但是,当我创建一个从它派生的具体类时(如下所示),该类在设计器中不起作用。

    public partial class ConcreteFormClass : BaseFormClass<StronglyTypedRow>
    {
      ...
    }
    

    我收到这条消息:

    无法显示设计师 此文件是因为没有类 其中可以设计。这 类 'BaseFormClass' 无法加载。确保 所有项目都已建成。

    有人以前见过这个吗?有任何已知的解决方法吗?

    2 回复  |  直到 15 年前
        1
  •  4
  •   mqp    16 年前

    很抱歉,但这行不通(这很遗憾——我过去也希望你能这么做。)问题在于设计师的基本方法。

    为了向您展示表单的模型,它实际上并没有试图构建表单本身;如果它这样做,你会遇到其他问题——如果你的表单没有无参数构造函数怎么办?相反,它实际上实例化了表单基类的一个实例 InitializeComponents()

    所以很明显为什么这行不通。你可以设计一个实例 BaseFormClass ,因为要设计它,它会创建一个实例 XtraForm ,这是混凝土。但你不能设计一个实例 ConcreteFormClass ,因为要这样做,它需要创建一个 ,这是抽象的。

    最简单的解决方法是

        2
  •  0
  •   Community Mohan Dere    8 年前

    my approach

    #if DEBUG )

    如果你能试试,请告诉我!