0

注意:这与例外无关!

我试图让一个文本框接受除符号和标点之外的所有内容......但我需要允许“,”和“。” . 我在用着:

if (char.IsPunctuation(e.KeyChar) == true)
{
     e.Handled = true;
}

if (char.IsSymbol(e.KeyChar) == true)
{
     e.Handled = true;
}

无论如何,这两个字符(,和。)有例外吗?

4

2 回答 2

3

首先检查这些字符:

if(e.KeyChar != ',' && e.KeyChar != '.')
{
    if (char.IsPunctuation(e.KeyChar))
    {
         e.Handled = true;
    }

    if (char.IsSymbol(e.KeyChar))
    {
         e.Handled = true;
    }
}

关于样式的注意事项:不需要比较布尔值来true获取分支。

于 2013-01-13T20:15:47.160 回答
2

尝试这个:

if (char.IsPunctuation(e.KeyChar) && e.KeyChar != ',' && e.KeyChar != '.')
{
     e.Handled = true;
}

if (char.IsSymbol(e.KeyChar) && e.KeyChar != ',' && e.KeyChar != '.')
{
     e.Handled = true;
}

或者您可以在所有这些之前简单地检查它:

if( e.KeyChar != ',' && e.KeyChar != '.')
{
    if (char.IsPunctuation(e.KeyChar) )
    {
         e.Handled = true;
    }

    if (char.IsSymbol(e.KeyChar) )
    {
         e.Handled = true;
    }
}

它的作用是检查字符是否是标点符号/符号,并且该字符不是“,”或“。”。因此,如果字符是逗号或句点,则 if 语句将不会运行。

于 2013-01-13T20:14:17.773 回答