注意:这与例外无关!
我试图让一个文本框接受除符号和标点之外的所有内容......但我需要允许“,”和“。” . 我在用着:
if (char.IsPunctuation(e.KeyChar) == true)
{
e.Handled = true;
}
if (char.IsSymbol(e.KeyChar) == true)
{
e.Handled = true;
}
无论如何,这两个字符(,和。)有例外吗?
注意:这与例外无关!
我试图让一个文本框接受除符号和标点之外的所有内容......但我需要允许“,”和“。” . 我在用着:
if (char.IsPunctuation(e.KeyChar) == true)
{
e.Handled = true;
}
if (char.IsSymbol(e.KeyChar) == true)
{
e.Handled = true;
}
无论如何,这两个字符(,和。)有例外吗?
首先检查这些字符:
if(e.KeyChar != ',' && e.KeyChar != '.')
{
if (char.IsPunctuation(e.KeyChar))
{
e.Handled = true;
}
if (char.IsSymbol(e.KeyChar))
{
e.Handled = true;
}
}
关于样式的注意事项:不需要比较布尔值来true
获取分支。
尝试这个:
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 语句将不会运行。