如何为“;”,“;”破例和“!”在KeyPress事件

本文关键字:事件 KeyPress | 更新日期: 2023-09-27 17:52:37

注意:这不是关于异常的!

我试图使一个文本框接受一切,但符号和标点符号…但我需要允许","answers"。"。我使用:

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

对于这两个字符(,和。)是否有例外?div ?

先检查这些字符:

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

样式注意:不需要为了取分支而将布尔值与true进行比较

如何为“;”,“;”破例和“!”在KeyPress事件

试试这个:

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语句将不会运行。