C# Windows窗体设计器类继承导致错误';变量';未声明或从未分配
在我的解决方案中,我有多个表单/视图,希望使用全局属性设置基本表单控件属性(字体名称、大小、颜色等) Designer.cs文件是一个分部类,当您执行“查看代码”时,它显然是主分部类的一部分。这是一个从“表单”继承的类。因此,我创建了另一个类文件,我称之为ViewMaster.cs,并从中继承“表单”,并将我的ViewMaster类设置为表单的继承类 MembershipView.csC# Windows窗体设计器类继承导致错误';变量';未声明或从未分配,c#,winforms,inheritance,windows-forms-designer,designer,C#,Winforms,Inheritance,Windows Forms Designer,Designer,在我的解决方案中,我有多个表单/视图,希望使用全局属性设置基本表单控件属性(字体名称、大小、颜色等) Designer.cs文件是一个分部类,当您执行“查看代码”时,它显然是主分部类的一部分。这是一个从“表单”继承的类。因此,我创建了另一个类文件,我称之为ViewMaster.cs,并从中继承“表单”,并将我的ViewMaster类设置为表单的继承类 MembershipView.cs public partial class MembershipView : ViewMaster {
public partial class MembershipView : ViewMaster {
...
}
ViewMaster.cs
public class ViewMaster : Form {
public Font fontButton = new Font("Microsoft Sans Serif", 11F, FontStyle.Regular, GraphicsUnit.Point, 0);
public Font fontLabel = new Font("Microsoft Sans Serif", 11F, FontStyle.Regular, GraphicsUnit.Point, 0); // new Font("Arial", 18F, FontStyle.Regular, GraphicsUnit.Point, 0);
public Font fontGrid = new Font("Microsoft Sans Serif", 10F, FontStyle.Regular, GraphicsUnit.Point, 0);
public Size sizeButton = new Size(125, 28);
}
MembershipView.Designer.cs
partial class MembershipView {
...
this.label5.Font = fontLabel;
...
this.btnSearch.Font = fontButton;
...
}
现在,当我单击“开始”或“开始调试”时,这一点就起作用了,尽管当我双击表单查看器(在我的例子中是MembershipView.cs)时,会出现如下错误:
- 变量“fontLabel”未声明或从未赋值
- 变量“fontButton”未声明或从未赋值
- 变量“sizeButton”未声明或从未赋值
- 变量“fontGrid”未声明或从未赋值
Mike设计器无法加载,因为当设计器在
MembershipView.designer.cs
文件中反序列化代码时,它会看到this.label5.Font=fontLabel
,因此它会在文件中查找fontLabel
字段的声明,并在文件的InitializeComponent
中查找字段的初始化。但是文件中不存在声明和初始化,因此设计器无法正确加载
有关设计师如何工作的更多信息,请参阅本文。这篇文章还包含一个非常有趣的例子:
Font
类型的ButtonFont
或Size
类型的buttonize
,然后在设计时使用属性网格,将Font
和Size
控件的Size
属性绑定到这些设置属性。您还可以将这些设置用于控件的其他属性
要了解有关属性绑定到应用程序设置的更多信息,请参阅以下文章:
MembershipView.designer.cs
文件中反序列化代码时,它会看到this.label5.Font=fontLabel
,因此它会在文件中查找fontLabel
字段的声明,并在文件的InitializeComponent
中查找字段的初始化。但是文件中不存在声明和初始化,因此设计器无法正确加载
有关设计师如何工作的更多信息,请参阅本文。这篇文章还包含一个非常有趣的例子:
Font
类型的ButtonFont
或Size
类型的buttonize
,然后在设计时使用属性网格,将Font
和Size
控件的Size
属性绑定到这些设置属性。您还可以将这些设置用于控件的其他属性
要了解有关属性绑定到应用程序设置的更多信息,请参阅以下文章:
- 我也有同样的问题,我已经解决了。实际上,VisualStudio只适用于X86控件,您不能在X64模式下创建用户控件并使用它
您应该在任何CPU模式下添加一个新类库并构建类库。然后可以在项目中添加其DLL。完成了
如果没有,则必须转到Configuration manager,将活动解决方案平台设置为X64,并对所有子项目执行此操作。请记住,必须选中“生成”选项。然后转到类库的属性并单击build选项卡。然后将平台目标设置为任何CPU。我也遇到了同样的问题,我已经解决了。实际上,VisualStudio只适用于X86控件,您不能在X64模式下创建用户控件并使用它 您应该在任何CPU模式下添加一个新类库并构建类库。然后可以在项目中添加其DLL。完成了
如果没有,则必须转到Configuration manager,将活动解决方案平台设置为X64,并对所有子项目执行此操作。请记住,必须选中“生成”选项。然后转到类库的属性并单击build选项卡。然后将平台目标设置为任何CPU。我发布了问题的答案。要了解更多信息,请看这篇文章:也可以看这篇文章有趣的示例部分。这将帮助你更好地了解设计师是如何工作的。我发布了一个问题的答案。要了解更多信息,请看这篇文章:也可以看这篇文章有趣的示例部分。这将帮助你更好地了解设计师是如何工作的。