我正在尝试学习并掌握 C# 的功能和方式。我曾经是一名 Visual Foxpro (VFP) 开发人员,多年来通过创建自己的要在应用程序范围内使用的用户控件基线,在视觉继承方面有些被宠坏了。
在尝试学习 C# 中的相似之处时,我陷入了困境。假设我派生了自己的标签控件(控件是标签的子类),使用字体“Arial”定义,10 磅。然后,在我将其添加到的任何表单上,设计器将自动预填充一些属性值,这些值可以在 Form 类的“Designer.cs”部分中看到。
this.LabelHdr2.AutoSize = true;
this.LabelHdr2.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold);
this.LabelHdr2.ForeColor = System.Drawing.Color.Blue;
this.LabelHdr2.Location = new System.Drawing.Point(150, 65);
this.LabelHdr2.Name = "LabelHdr2";
this.LabelHdr2.Size = new System.Drawing.Size(158, 22);
this.LabelHdr2.TabIndex = 5;
this.LabelHdr2.Text = "LabelHdr2";
我想防止每次在窗体上放置控件时生成诸如字体、颜色、大小、自动大小之类的内容。如果我后来决定将字体从“Arial”10 更改为“Tahoma”11,我将必须返回所有表单(以及任何其他自定义控件)并进行编辑以进行更改。
在 VFP 中,如果我更改基类的任何内容,所有表单都会自动识别这些更改。我不必编辑任何内容(除了通过大小影响可能进行的对齐之外)...但是颜色、字体和其他所有内容在 VFP 中都没有问题...
在 C# 中,我必须返回并更改每个表单,以便它可以被类的新/更新值识别...
有没有合理的方法来避免这种情况?
不要使用“ReadOnlyAttribute”,而是尝试使用“默认值属性如果我没记错的话,如果当前值与“DefaultValueAttribute”中存储的值匹配,则设计者不应创建代码来设置属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)