Visual Studio 在创建从 Form 继承的新类时更改了设计器生成的代码
本文关键字:代码 新类时 创建 Studio Form Visual 继承 | 更新日期: 2024-10-30 18:07:01
根据建议,我在一个新线程中问这个问题。这个问题源于 Reza 对这个问题的回答,我希望自定义属性显示在窗体的设计器中。
为此,我需要创建一个类,让我们将其称为BaseForm
并让BaseForm
从System.Windows.Forms.Form
继承,我应该将我想要的属性添加到该类中,并让我的用户表单从BaseForm
继承。喜欢这个:
public partial class BaseForm : Form
{
[Browsable(true), Description("test property"), Category("Appearance")]
public Color bCol { get; set; }
}
public partial class Form1 : BaseForm
{
public Form1()
{
InitializeComponent();
}
}
但是,当我这样做时,Visual Studio将设计器生成的partial class Form1
(InitializeComponent
等所在的位置)更改为partial class BaseForm
。这带来了错误,即InitializeComponent
不在Form1
范围内,所以我将其更改为:
public partial class BaseForm : Form
{
[Browsable(true), Description("test property"), Category("Appearance")]
public Color bCol { get; set; }
public BaseForm()
{
InitializeComponent();
}
}
public partial class Form1 : BaseForm
{
/*public Form1()
{
InitializeComponent();
}*/
}
这违背了Form1
继承BaseForm
的目的,因为我在设计器中看到的是BaseForm
继承自Form
,而不是Form1
从BaseForm
继承,正如我希望的那样。
Visual Studio为什么要这样做,我能做些什么来解决这个问题?
设计器编辑文件中的第一个类。您已将BaseForm
作为.cs文件中的第一类。
要解决此问题,请将其放在单独的文件中,或在Form1
代码之后移动BaseForm
代码。
通常,最好将BaseForm
代码分开,因此最好向项目添加新窗体并将其命名为BaseForm
并向窗体添加其他属性,然后对于其他窗体,添加Inherited Form
或添加新Form
并手动更改基类名称。