我正在开发Windows窗体应用程序。我的一个文本框假设接收一个数值以供进一步处理。输入可以是圆数或带小数点的数字。如果用户输入number, backspace key or a dot(".")
以外的无效字符,则会出现带警告的标签。这是我的代码:
private void TextBoxMainManualCpkVal_KeyPress(System.Object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if ((!IsNumeric(e.KeyChar) && e.KeyChar != ControlChars.Back && e.KeyChar != "."))
{
LabelWarnMainCpk.Visible = true;
e.KeyChar = null;
}
else
{
LabelWarnMainCpk.Visible = false;
}
}
现在,我想确保用户输入一个有趣的数字值,例如"1.2.3"
警告标签应显示。
我如何实现这一目标?
答案 0 :(得分:3)
答案 1 :(得分:0)
使用正则表达式:
var regex = new Regex(@"^[0-9]([.,][0-9]{1,3})?$", RegexOptions.IgnoreCase);
var match = regex.Match(inputString);
bool isValid = match != null && match.Success;
stackoverflow中的替代解决方案:
bool IsDecimalFormat(string input) {
Decimal dummy;
return Decimal.TryParse(input, out dummy);
}