繁体   English   中英

TextBox验证 - C#

[英]TextBox Validation - C#

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

非常感谢你 :)

decimal value;
bool isValid = decimal.TryParse(textBox.Text, out value);

if (!isValid)
{
    throw new ArgumentException("Input must be a decimal value");
}

这应该工作!!!

仅修改一个小数

    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);
    }

只是一个想法:如果你监控小数位,只需在你的控制中保持一个bool标志说“我已经有一个点”; 后续的点无效。

或者,在检查小数位时,您可以使用Contains

if (textbox.Text.Contains("."))

另外,请查看MSDN(NumericTextBox)上提供的此示例:

http://msdn.microsoft.com/en-us/library/ms229644(VS.80).aspx

使用正则表达式验证:

^([0-9]*|\d*\.\d{1}?\d*)$

该站点有一个正则表达式验证库(包括数字相关),您会发现它很有用:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM