有没有办法设置 a TextBox
invb
使其不接受用户输入的空格或非数字字符?我正在编写一个程序,TextBox
其中phoneField
用户应该只输入数字,如果用户尝试输入非数字字符或空格,则不应在TextBox
. 那怎么可能呢?
问问题
3300 次
5 回答
2
首先在掩码中使用 0 以仅允许数字字符。二、将ResetOnSpace属性赋值为false
Me.MaskedTextBox.ResetOnSpace = False
这将拒绝用户输入的任何空格,除非它是提示的一部分。
于 2012-05-31T20:49:18.893 回答
1
这是错误的处理方式。你会让你的用户对你的应用大发雷霆。取而代之的是,让他们输入他们想要的任何内容,并在后端编写代码,首先去除任何非数字,然后验证结果。
于 2012-04-19T13:48:57.333 回答
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 回答
0
于 2012-04-19T10:00:28.540 回答
0
实际上,如果您的提示字符是空格,则正确的设置有效:
.AllowPromptAsInput = False
.Mask = "00"
.ResetOnPrompt = False
.ResetOnSpace = True
于 2017-01-16T05:05:35.640 回答