自定义TextBox与检查文本属性的错误
我正在编写一个NumberTextbox
,它扩展了Winforms的标准Textbox类。该类包含Text属性的以下覆盖:自定义TextBox与检查文本属性的错误
[DefaultValue("")] public override string Text
{
get
{
return base.Text;
}
set
{
if (!IsNumber(value))
throw new FormatException();
base.Text = value;
}
}
构造函数确实在Text属性中显式插入了一个空字符串。当我尝试使用设计器将此文本框插入表单时,我得到FormatException
。用return;
代替罚球线可以解决这个问题,但这在我看来是错误的。有没有更好的解决这个问题?请注意,IsNumber
方法确实会为空字符串返回true
。
回答:
不确定为什么您的IsNumber方法在设计模式下无法正常工作。解决这一问题的简单方法是不调用该方法,如果你是在设计模式...
set {
if (!DesignMode && !IsNumber(value))
throw new FormatException();
base.Text = value;
}
设计师的作品以神秘的方式决定一切执行。所以偶尔你需要测试设计模式,以保持它的工作体验。
以上是 自定义TextBox与检查文本属性的错误 的全部内容, 来源链接: utcz.com/qa/260037.html