Windows Forms Designer class inheritance causing error 'variable' is either undeclared or was never assigned
在我的解决方案中,我有多个表单/视图,希望使用全局属性设置基本表单控件属性(字体名称、大小、颜色等)。
designer.cs文件是一个分部类,在执行"view code"时,它显然与主分部类不同。这是从"form"继承的类。因此,我所做的是创建另一个名为viewmaster.cs的类文件,并从中继承"form",并将我的viewmaster类设置为表单的继承类。
成员关系视图.cs
1 2 3 | public partial class MembershipView : ViewMaster { ... } |
视像大师
1 2 3 4 5 6 | 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); } |
成员关系视图.designer.cs
1 2 3 4 5 6 7 | partial class MembershipView { ... this.label5.Font = fontLabel; ... this.btnSearch.Font = fontButton; ... } |
现在,当我单击"开始"或"开始调试"时,这是有效的,但是当我双击表单查看器(在我的例子中是membershipview.cs)时,我会得到如下错误:
变量"fontLabel"未声明或从未分配。
变量"fontbutton"未声明或从未分配。
变量"sizeButton"未声明或从未赋值。
变量"fontgrid"未声明或从未赋值。
我可以点击"忽略并继续"。此时,虽然Designer/Form视图8.25中的大小/字体,但显然它不会从继承的属性中读取。再一次-当我点击"开始"时,一切都正常。
有人有什么建议来解决这个问题吗?
谢谢!迈克
设计器无法加载,因为当设计器反序列化
有关设计器如何工作的更多信息,请查看本文。这篇文章还包含一个非常有趣的例子:
- 在C中编码表单时无法查看设计器#
我应该怎么做才能有一些基本设置,如字体、大小?
您可以使用属性绑定到应用程序设置,而不是将这些设置放在基中。这样,您可以创建一些基础设置,如
要了解应用程序设置的属性绑定的更多信息,请查看以下文章:
- 如何:使用设计器创建应用程序设置