注意:这不是关于EXCEPTIONS!
我正在尝试让文本框接受除了符号和标点之外的所有内容......但我需要允许“,”和“。” 。我正在使用:
if (char.IsPunctuation(e.KeyChar) == true)
{
e.Handled = true;
}
if (char.IsSymbol(e.KeyChar) == true)
{
e.Handled = true;
}
有没有为这两个字符(,和。)做出异常?
答案 0 :(得分:3)
首先检查这些字符:
if(e.KeyChar != ',' && e.KeyChar != '.')
{
if (char.IsPunctuation(e.KeyChar))
{
e.Handled = true;
}
if (char.IsSymbol(e.KeyChar))
{
e.Handled = true;
}
}
关于样式的注意事项:无需将布尔值与true
进行比较,以便进行分支。
答案 1 :(得分: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语句。