C#-自定义用户控件中的“覆盖字体”属性未显示在设计器文件中

我有一个自定义用户控件,并且已覆盖其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;
        }

    }

解决方法:

将代码更改为此:

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; }
}
上一篇:取消WinForms应用程序中的PLINQ查询


下一篇:如何使用C#将转义符放在特殊字符之前?