0

注: これは例外に関するものではありません。

テキストボックスに記号と句読点以外のすべてを受け入れさせようとしています...しかし、「、」と「。」を許可する必要があります。. 私は使用しています:

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

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

これらの 2 つの文字 ( 、および .) を例外にする方法はありますか?

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 に答える