2017-12-21 8 views
0

私が使用していたコードはこれです:文字の検証時にバックスペースとスペースを許可する方法は?

If Asc(e.KeyChar) < 65 Or Asc(e.KeyChar) < 90 _ 
And Asc(e.KeyChar) < 97 Or Asc(e.KeyChar) > 122 Then 
    MessageBox.Show("Please enter letters only") 
    e.Handled = True 
End If 

VBの文字を検証するときにバックスペースやスペースを許可する方法は?バックスペース用

+0

これは正しいですか?「またはAsc(e.KeyChar)<90」ですか?あなたがそれが_より大きいかどうかをチェックするつもりはありませんでしたか? –

+0

はい、良いUIの重要な要素は、誤ったキーストロークごとにユーザーを叱って罰することです。タイプミスは許されません。 – Plutonix

答えて

2

文字コードは8で、スペースのための32であるので、あなたのコードは次のようになります。私は最初Falseに遭遇したときの評価を停止するために、AndAlsoを使用

If (Asc(e.KeyChar) < 65 OrElse Asc(e.KeyChar) < 90) _ 
AndAlso (Asc(e.KeyChar) < 97 OrElse Asc(e.KeyChar) > 122) _ 
AndAlso Asc(e.KeyChar) <> 8 AndAlso Asc(e.KeyChar) <> 32 Then 
    MessageBox.Show("Please enter letters only") 
    e.Handled = True 
End If 

注意。

+2

'AndAlso'に切り替えたので、[**' OrElse' **](https://stackoverflow.com/q/8409467)も使いたいかもしれません。また、 'Or OrElse'チェックを大括弧でグループ化することも検討してください。そうすれば読みやすくなりますが、正しく実行されるようにすることもできます。 –

+0

@VisualVincent完全に有効なポイントは、ありがとう! –

関連する問題