我在自定义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);
}
答案 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。 它会对你有用。