C# 如何隐藏此继承标签的某些属性?

C# 如何隐藏此继承标签的某些属性?,c#,.net,winforms,c#-4.0,inheritance,C#,.net,Winforms,C# 4.0,Inheritance,我有以下代码。如何隐藏自动省略号,图像,图像对齐,图像索引,图像键,图像列表和选项卡索引属性 另外,如何将默认大小设置为50x50px public class GradientBox : Label { [DefaultValue(false), Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisib

我有以下代码。如何隐藏
自动省略号
图像
图像对齐
图像索引
图像键
图像列表
选项卡索引
属性

另外,如何将默认大小设置为50x50px

public class GradientBox : Label
{
    [DefaultValue(false), Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    public override bool AutoSize { get; set; }

    [DefaultValue(false), Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    public override string Text { get; set; }

    [DefaultValue(false), Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    public override ContentAlignment TextAlign { get; set; }

    // NullRef Exception if use { get; set; }
    [DefaultValue(false), Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    public override Font Font
    {
        get { return base.Font; }
        set { base.Font = value; }
    }

    public override BorderStyle BorderStyle
    {
        get { return BorderStyle.FixedSingle; }
        set { base.BorderStyle = value; }
    }

    protected override void OnPaint(PaintEventArgs e)
    {
        e.Graphics.FillRectangle(new LinearGradientBrush(new Point(0, 0), new Point(0, this.Height), this.ForeColor, this.BackColor), ClientRectangle);
    }
}

当您从某个对象继承时,您的新类需要能够像基类一样工作(多态性的一个方面)。这意味着它不能提供比基础更少的功能。因此,无法删除这些属性,因为否则它就不会是
标签

<>你可能想考虑的是“作文”。


当您从某个对象继承时,您的新类需要能够像基类一样工作(多态性的一个方面)。这意味着它不能提供比基础更少的功能。因此,无法删除这些属性,因为否则它就不会是
标签

<>你可能想考虑的是“作文”。


这将违反Liskov的替代原则()这将违反Liskov的替代原则()
public class GradientBox : Control
{
    private Label myLabel;
    public GradientBox()
    {
        myLabel = new Label;
        // Set your default values
    }


    public Font Font
    {
        get { return myLabel.Font; }
        set { myLabel.Font = value; }
    }
    // repeat to expose just the properties you want.
 }