TextBox验证 - C#

时间:2010-07-14 15:28:02

标签: c# winforms validation textbox

我在C#Application的文本框验证方面遇到了很多困难。问题是,所述文本框应该只接受十进制值。所以这意味着,除了'。'之外,不应该有任何字母或任何其他符号。符号。字母过滤器,我可以处理。但是,我并不知道如何设法过滤'。'的数量。文本框应该接受。如果有人知道如何做到这一点,请给我一个想法。

非常感谢:)

5 个答案:

答案 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*)$

这个网站有一个你会觉得有用的正则表达式验证库(包括数字相关的):

http://regexlib.com/Search.aspx?k=decimal&c=-1&m=-1&ps=20

答案 4 :(得分:0)

使用MaskedTextBox并将掩码设置为仅接受小数。