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