C#DefaultValue在构建后重置自身

时间:2017-06-13 02:41:29

标签: c# textbox components

我在自定义TextBox中遇到问题,我试图制作:

我试图创建一个defaultValue为true的新属性,让textBox在textChanged之后调整大小,但每次构建项目时,即使我手动将属性窗口中的值更改为false,也是property将自身重置为true。

    [Browsable(true)]
    new public bool AutoSize { get; set; } = true;  

    protected override void OnTextChanged(EventArgs e)
    {
        if (AutoSize == true)
        {
            Size size = TextRenderer.MeasureText(Text, Font);
            Width = size.Width;
            Height = size.Height;
        }
        base.OnTextChanged(e);
    }

2 个答案:

答案 0 :(得分:0)

尝试使用支持字段并使用:

    private bool _AutoSize = true;

    [Browsable(true)]
    new public bool AutoSize
    {
        get { return _AutoSize; }
        set
        {
            _AutoSize = value;
            UpdateStyles();
        }
    }

答案 1 :(得分:0)

public class SampleEx : TextBox
    {
        [Browsable(true)]
        [DefaultValue(typeof(bool), "true")]
        new public bool AutoSize { get; set; }

        public SampleEx()
            : base()
        {
            this.AutoSize = true;            
        }
    }

在[DefaultValue(typeof(bool)," true")]和构造函数中,您必须设置为true。 它会对你有用。