-2

テキストボックスに許可されている期間を制限する方法を誰かが知っているかどうか尋ねたい. C# Visual Studio 2010 を使用しています。

私の問題は、ユーザーのテキストボックスのミドルイニシャルに単一のピリオドのみが許可されることを保証する検証コードを見つける必要があることです。ユーザーが別のピリオドを入力すると、そのピリオドはテキスト ボックスに表示されません。エラー メッセージは必要ありません。例は、文字のみを受け入れる検証コードです。この例のコードは次のとおりです。

private void txtFirstName_KeyPress(object sender, KeyPressEventArgs e)
        {
            byte num = Convert.ToByte(e.KeyChar);

        if ((num >= 65 && num <= 90) || (num >= 97 && num <= 122) || (num == 8) || (num == 32))
        {

        }

        else if (num == 13)
        {
            e.Handled = true;
            SendKeys.Send("{Tab}");
        }
        else
        {
            e.Handled = true;
        }

    }

現在、txtboxMI には次のコードがあります。

private void txtMI_KeyPress(object sender, KeyPressEventArgs e)
{
    byte num = Convert.ToByte(e.KeyChar);

    if ((num >= 65 && num <= 90) || (num >= 97 && num <= 122) || (num == 8) || (num == 32))
    {

    }
    else if (num == 13)
    {
        e.Handled = true;
        SendKeys.Send("{Tab}");
    }
    else
    {
        e.Handled = true;
    }
}
4

2 に答える 2

0

サーバーサイドにする必要はありますか?

正規表現バリデーターを使用できます。

[a-zA-Z_-.] はあなたが望むものを与えるはずです。

于 2012-12-03T08:15:44.120 に答える
0

これを試して:

var txt = (TextBox)sender;
if ((e.KeyChar >= 'A' && e.KeyChar <= 'Z') || (e.KeyChar >= 'a' && e.KeyChar <= 'z') || e.KeyChar == 8 || e.KeyChar == 32) {
} else if (txt.Text.Contains('.') && e.KeyChar == '.') {
    e.Handled = true;
} else if (e.KeyChar == '\t') {
    e.Handled = true;
    SendKeys.Send("{Tab}");
}
于 2012-12-03T08:41:05.063 に答える