自定义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

回到顶部