相关疑难解决方法(0)

首次将 WinForms 自定义控件放在窗体上时,如何获取其默认值

我有一个带有自定义控件的类库:

using System.ComponentModel;
using System.Windows.Forms;

namespace ClassLibrary1
{
    public sealed class CustomLabel : Label
    {
        [DefaultValue(false), Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public override bool AutoSize
        {
            get => base.AutoSize;
            set => base.AutoSize = value;
        }

        public CustomLabel()
        {
            AutoSize = false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,在重写方法AutoSize的构造函数设计器属性中都设置为 false 。

我有一个想要使用控件的 winforms 项目。我从工具箱中拖放它,但它没有AutoSize设置为 false:

在此处输入图片说明

如果我保存并关闭表单然后重新打开它,现在它已正确设置:

在此处输入图片说明

当第一次放在表单上时,我怎样才能让它尊重属性值?

c# windows-forms-designer visual-studio winforms visual-studio-2017

2
推荐指数
1
解决办法
1217
查看次数