TextBoxを数値入力のみにする
TextBoxで「XXコードの入力」といったコード類の入力で、数値のみ入力させたい場合があります。
そこで、次のようにTextBoxのKeyPressイベントを使用して数値のみ入力できるようにします。 (次の例では、数値とBackSpaceの入力のみ可能にしています。)
Private Sub TextBox1_KeyPress(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim blnBackSpace As Boolean = Asc(e.KeyChar) = Keys.Back
If (e.KeyChar < "0"c Or e.KeyChar > "9"c) _
And Not blnBackSpace Then
e.Handled = True
End If
End Sub
KeyCharが数字であるかどうかは、Char.IsDigit()で知ることができるので次のようにすることもできます。
Private Sub TextBox1_KeyPress(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim blnNumber As Boolean = Char.IsDigit(e.KeyChar)
Dim blnBackSpace As Boolean = Asc(e.KeyChar) = Keys.Back
If Not blnNumber And Not blnBackSpace Then
e.Handled = True
End If
End Sub