-2

ユーザーが入力したスペースや数字以外の文字を受け入れないようTextBoxに設定する方法はありますか? ユーザーが数字のみを入力する必要があるという呼び出しのあるプログラムを作成しています。ユーザーが数字以外の文字またはスペースを入力しようとすると、に何も表示されませvbん。どうすればそれができますか?TextBoxphoneFieldTextBox

4

5 に答える 5

2

最初にマスクに 0 を使用して、数字のみを許可します。次に、ResetOnSpace プロパティを false に割り当てます

Me.MaskedTextBox.ResetOnSpace = False

これにより、プロンプトの一部でない限り、ユーザーが入力したスペースは拒否されます。

于 2012-05-31T20:49:18.893 に答える
1

これは、これを処理するための間違った方法です。アプリに対する怒りでユーザーを狂わせます。代わりに、彼らが望むものを何でも入力できるようにし、最初に非数字を取り除いてから結果を検証するコードをバックエンドに用意します。

于 2012-04-19T13:48:57.333 に答える
0

MaskedTextBoxクラスを使用する

似たようなもの:

Me.MaskedTextBox1.Mask = "0-000-0000000"
于 2012-04-19T10:00:28.540 に答える
0

継承された TextBox コントロールを使用して、これと同様のことを行いました。

この方法の利点は、切り取り、コピー、貼り付けが正しく機能することです。

''' <summary>
''' A TextBox control that only allows numeric input
''' </summary>
''' <remarks>Allows cut, copy and paste</remarks>
Public Class NumericTextBox
    Inherits TextBox
    Private _textBefore As String = ""
    Protected Overrides Sub OnTextChanged(e As System.EventArgs)
        Me.SuspendLayout()
        If MyBase.Text.Length > 0 AndAlso Not IsNumeric(MyBase.Text) Then
            ' The text has been changed to a non numeric value
            Dim selectionStart As Integer = MyBase.SelectionStart
            MyBase.Text = _textBefore
            MyBase.SelectionStart = selectionStart
        Else
            ' The current text is numeric (or blank) remember it in case it changes to an invalid value
            _textBefore = MyBase.Text
        End If
        MyBase.OnTextChanged(e)
        Me.ResumeLayout()
    End Sub
End Class
于 2012-10-14T22:58:27.157 に答える