我在努力学习和掌握什么和如何C#做的事情。我在历史上一些统(非常)开发的,有些宠坏了在多年的视觉的继承通过创建自己的基准,用户的控制可使用的应用广泛。

在试图了解的相似之处,在C#我被困在的东西。说我得到我自己的标签控制(控制亚类的标签)定义字体"Arial",10点。然后,在任何形式,我将它添加到,设计者将自动预先填写在一些酒店的价值观,可以看出,在"设计师。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,"宋"11,我将要回到所有形式(和任何其他定义控制)和编辑改变。

在照片,如果我改变任何东西我baseclass,所有形式自动承认的变化。我不需要任何编辑(与例外的可能的路线通过大小的影响)...但颜色、字体和所有其他任何问题在照片...

C#,我要回去和改变每个形式,因此它是公认的新的/更新的价值观之类的...

是否有一个合理的方式来避免这种情况?

有帮助吗?

解决方案

下面是使用 ReadOnlyAttribute 在派生类。

class MyLabel : Label
{
    [ReadOnly(true)]
    public override Font Font
    {
        get { return new Font(FontFamily.GenericMonospace, 10); }
        set { /* do nothing */ }
    }
}

<=> 将禁用属性编辑在VS.NET设计师。

其他提示

而不是使用"ReadOnlyAttribute",尝试使用的"DefaultValueAttribute"代替。如果我没记错的设计不应该创造码设置的财产,如果目前的价值相匹配的价值存在"DefaultValueAttribute".

尝试添加只读属性到派生类的属性:

[ReadOnly(true)]
public override Font Font
{
    get{ // Your Implementation Here }
    set{ // Don't really care,do you? }
}

在ReadOnlyAttribute应该执行在设计时将ReadOnly行为。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top