多个抽象表单继承

本文关键字:继承 表单 抽象 | 更新日期: 2023-09-27 18:17:31

我有一个抽象的基本控件BaseControl,我用下面的帖子解决了子窗体不显示的问题。

现在,我有很多控件共享一些公共属性,我想为它们创建一个中间抽象类来重新组合不同的公共属性,并强制所有后代实现一些其他属性。

[TypeDescriptionProvider(typeof(AbstractControlDescriptionProvider<BaseControl, UserControl>))]
public abstract partial class BaseControl : UserControl {
  ...
  ...
  ...
}
 [TypeDescriptionProvider(typeof(AbstractControlDescriptionProvider<BaseControl2, BaseControl>))]
public abstract partial class BaseControl2 : BaseControl {
  ...
  ...
  ...
}

不幸的是,这不起作用,设计师抱怨不能为后代控件创建抽象类BaseControl2的实例。

有什么建议如何解决这个问题吗?

多个抽象表单继承

您需要了解AbstractControlDescriptionProvider是如何工作的-如果类型是抽象的,它将其替换为非抽象的基类型。

您指定了一个抽象类型作为非抽象基类型,所以显然它不能工作:)