4

Visual Basic は初めてで、アルファベットと特殊文字を無効にする方法がわかりません。

ユーザーが数字を入力できるようにしたいだけです。

私はこのコードを使用していますが、それを行うためのより簡単な方法があることを知っています。

英字入力時、数字入力時にメッセージボックスが表示されます。数字を入力するときにメッセージ ボックスを取得したくありません。

Private Sub txtCustom_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtCustom.KeyDown

    If (e.KeyCode = Keys.Enter) Then

        e.SuppressKeyPress = True

        If (e.KeyCode = Keys.A Or Keys.B Or Keys.C Or Keys.D Or Keys.E Or Keys.F Or Keys.G Or Keys.H Or Keys.I Or Keys.J Or Keys.K Or Keys.L Or Keys.M Or Keys.N Or Keys.O Or Keys.P Or Keys.Q Or Keys.R Or Keys.S Or Keys.T Or Keys.U Or Keys.V Or Keys.W Or Keys.X Or Keys.Y Or Keys.Z) Then

            Beep()
            MsgBox("Please Input A Numerical Value")
            txtCustom.Text = ""

        Else

            RandNumAllow = txtCustom.Text

        End If

    End If

End Sub
4

3 に答える 3

7

代わりに KeyPress イベントを使用してみてください。

Private Sub TextBox1_KeyPress(sender As Object, _
                              e As KeyPressEventArgs) Handles TextBox1.KeyPress
  e.Handled = Not Char.IsNumber(e.KeyChar)
End Sub

しかし、これで誰かがクリップボードを使用するのを止めることはできません。代わりに MaskedTextBox コントロールを使用することをお勧めします。

于 2012-10-21T13:35:54.577 に答える
0

あなたが探していたコードは、このように見えると思います。

入力を制御しようとしているテキストまたは入力ボックスのキープレスイベントの場合

If (e.KeyChar < "0" OrElse e.KeyChar > "9") AndAlso 'restricts anything but number keys
    e.KeyChar <> ControlChars.Back Then 'allows use of backspace
    e.Handled = True
End If
于 2019-05-07T14:26:40.967 に答える