2

こんにちは、テキスト ボックスをアルファベットのみで設定したいのですが、次のコードを試してみました。キーボードのキーでは問題なく動作していますが、テンキーのキー番号を押すと、数字を受け入れることができます。

bool isvalid = true;

    private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
        if ((e.KeyValue <65 || e.KeyValue > 90) && (e.KeyValue<97||e.KeyValue>122) e.KeyValue != 8))
        {
            isvalid = false;
            MessageBox.Show("only alphabets");

        }
        else
        {
            isvalid = true;

        }
    }

    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (isvalid == false)
        {
            e.Handled = true;
        }
        else
        {
            e.Handled = false;
        }

    }
4

2 に答える 2

3

プロパティを使用Regex.IsMatchします。

次のコードを使用できます:

private void txtAlphaOnly_TextChanged(object sender, EventArgs e)
{
    if (System.Text.RegularExpressions.Regex.IsMatch("^[a-zA-Z]", txtAlphaOnly.Text))
    {
        MessageBox.Show("Alphabets Only Allowed");            
    }
}

MSDN:

http://msdn.microsoft.com/en-IN/library/system.text.regularexpressions.regex.ismatch.aspx

その役に立つことを願っています。

于 2013-04-27T08:52:47.463 に答える
1

KeyDown イベントでは、 e.KeyValue で得られるのは、文字ではなくキーボードのキーのコードです。 Keys Enumerationを参照してください。この条件は、AZ と az に当てはまります。

 (e.KeyValue >= Keys.A && e.KeyValue <= Keys.Z)
于 2013-04-27T08:57:23.067 に答える