我在C#Application的文本框验证方面遇到了很多困难。问题是,所述文本框应该只接受十进制值。所以这意味着,除了'。'之外,不应该有任何字母或任何其他符号。符号。字母过滤器,我可以处理。但是,我并不知道如何设法过滤'。'的数量。文本框应该接受。如果有人知道如何做到这一点,请给我一个想法。
非常感谢:)
答案 0 :(得分:4)
decimal value;
bool isValid = decimal.TryParse(textBox.Text, out value);
if (!isValid)
{
throw new ArgumentException("Input must be a decimal value");
}
答案 1 :(得分:3)
这应该有用!!!
只修改了一个小数
private void txtType_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Back || (e.KeyChar == (char)'.') && !(sender as TextBox).Text.Contains("."))
{
return;
}
decimal isNumber = 0;
e.Handled = !decimal.TryParse(e.KeyChar.ToString(), out isNumber);
}
答案 2 :(得分:1)
只是一个想法:如果你监控小数位,只需在你的控制中保持一个bool标志说“我已经有了一个点”;后续的点无效。
或者,在检查小数位时,您可以使用Contains
:
if (textbox.Text.Contains("."))
另外,请查看MSDN(NumericTextBox)上提供的此示例:
http://msdn.microsoft.com/en-us/library/ms229644(VS.80).aspx
答案 3 :(得分:1)
使用正则表达式验证:
^([0-9]*|\d*\.\d{1}?\d*)$
这个网站有一个你会觉得有用的正则表达式验证库(包括数字相关的):
答案 4 :(得分:0)
使用MaskedTextBox并将掩码设置为仅接受小数。