自定义usercontrol中的重写字体属性未显示在设计器文件中

时间:2011-08-02 17:21:36

标签: c# winforms

我有一个自定义用户控件并已覆盖其Font属性。

当我将usercontrol的副本放到表单上时,我可以设置Font属性,但是我没有看到我为表单设计器文件中显示的'Font'设置的值。当我编译/运行我的应用程序时,我输入的值丢失了。

请注意,我也想覆盖Text属性,并且在设计器文件中也看不到它的设置值 - 直到我在这里找到答案来帮助这样做(我需要设置'DesignerSerializationVisibility '和'EditorBrowsable'属性)。我试过为Font做同样的事情,但无济于事。有什么想法吗?

    private Font _Font = UserControl.DefaultFont;

    [Description("Sets the font of the button caption"),,
     Browsable(true),
     Bindable(true),
     EditorBrowsable(EditorBrowsableState.Always),
     DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
    public override Font Font
    {
        get { return _Font; }
        set
        {
            _Font = value;
        }

    }

1 个答案:

答案 0 :(得分:3)

将您的代码更改为:

public UserControl1()
{
  InitializeComponent();
  base.AutoScaleMode = AutoScaleMode.None;
}

[Description("Sets the font of the button caption")]
public override Font Font
{
  get { return _Font; }
  set { _Font = base.Font = value; }
}