0

テキストボックスにアルファベット以外の文字があるかどうかを確認する方法を知っている人はいますか?

テキストボックスに記号や数字などがある場合-私はやりたい:

MessageBox.Show("Please enter only letters");

どんな助けでも大歓迎です。

4

1 に答える 1

1

テキストボックスの KeyPress イベントで、文字が文字かどうかを確認し、そうでない場合はキー押下をキャンセルできます。これはテストされていませんが、動作するはずです。

private void YourTextbox_KeyPress(Object sender, KeyPressEventArgs e)
{
    if(!char.IsLetter(e.KeyChar))
    {
        e.Handled = true;
        MessageBox.Show("Please enter only letters");
    }
}

基本的に、文字が文字であるかどうかをテストし、文字である場合はキープレスが OS を通過できるようにし、そうでない場合はキープレスをキャンセルします (e.Handledプロパティを に設定しますtrue)。

現在、ユーザーはアルファベット以外の文字を含むテキストを貼り付けることでこれを回避できます。そのため、セキュリティよりもユーザー エクスペリエンスが向上します。ユーザーが送信ボタンをクリックした後に検証を実行するには、文字列を反復処理して、アルファベット以外の文字があるかどうかを判断します。したがって、送信イベントでは、次のようなものにすることができます。

for(int i = 0; i < YourTextbox.Text.Length; i++)
{
    if(!char.IsLetter(YourTextbox.Text[i])
    {
        MessageBox.Show("Please enter only letters");
        break;
    }
}

MSDN の Char.IsLetter メソッド

于 2012-04-08T22:29:38.023 に答える