Windows窗体继承

Ron*_*rby 5 .net c# windows inheritance winforms

我想创建一堆具有相同属性的表单,并通过指定构造函数的参数来初始化表单构造函数中的属性.

我尝试创建一个继承自form的类,然后让我的所有表单继承自该类,但我认为因为我无法调用InitializeComponent(),所以我遇到了一些问题.

什么是C#代码如何做到这一点?

Ada*_*son 6

InitializeComponent应该通过让你的构造函数调用来调用父代base():

public YourFormName() : base()
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

(你的父表单应该InitializeComponent在其构造函数中调用.你没有把它拿出来,是吗?)

然而,你正在走下去的道路并不适合与设计师合作,因为你不可能在设计时用这些参数来实例化你的表格(你必须提供一个无参数的构造函数,它可以工作).您还会遇到第二次分配父属性的问题,或者如果您在代码中使用参数化构造函数,则将它们指定为与您可能需要的不同.

坚持只在表单上使用属性而不是使用带参数的构造函数.对于Forms,你会让自己头疼.