Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从以前创建的表单继承所有属性和控件以及代码?_C#_Visual Studio_Inheritance - Fatal编程技术网

C# 如何从以前创建的表单继承所有属性和控件以及代码?

C# 如何从以前创建的表单继承所有属性和控件以及代码?,c#,visual-studio,inheritance,C#,Visual Studio,Inheritance,如果我不得不用另一种方式说,我想要的是创建一个表单,它将作为我的其他表单的骨架 我想要一个表单作为其他10个表单的基础,具有相同的起始功能和外观。相同控件、这些控件的每个事件的代码和属性等 如何实现这一点?您可以创建不同的表单,但使用共享的UserControl填充每个表单,这允许您定义共享的UI和功能。VisualStudio对创建用户控件以及在其他表单中使用它们提供了一流的支持。但是,这不允许您定义仅为顶级表单定义的行为或外观 同样可以创建从VisualStudio生成的form类继承的类。

如果我不得不用另一种方式说,我想要的是创建一个表单,它将作为我的其他表单的骨架

我想要一个表单作为其他10个表单的基础,具有相同的起始功能和外观。相同控件、这些控件的每个事件的代码和属性等


如何实现这一点?

您可以创建不同的表单,但使用共享的
UserControl
填充每个表单,这允许您定义共享的UI和功能。VisualStudio对创建用户控件以及在其他表单中使用它们提供了一流的支持。但是,这不允许您定义仅为顶级表单定义的行为或外观


同样可以创建从VisualStudio生成的form类继承的类。它将继承所有控件、事件处理程序和属性

为了可重用性,我通常只使用UserControl,但您可以从一个表单继承另一个表单:

public partial class Form2 : Form1
{
    public Form2()
    {
        InitializeComponent();
    }
}
首先调用基窗体(Form1)上的构造函数,然后调用子窗体(Form2)上的构造函数

在运行时,您可以在子窗体上看到来自基窗体的控件,以及仅针对子窗体的任何其他控件。附加到基窗体上定义的控件的事件、属性等都会传递到子窗体

设计器甚至会显示基本窗体的控件,尽管它们已锁定,并且在不直接编辑基本窗体的情况下无法移动或删除(请参见基本窗体中定义的控件上的小图标):