以下代码仅允许在TextBox1
中键入数字。但是TextBox1
用于插入历史记录(日期),我想使用格式“ 0000/00/00”。如何从错误消息中的IsNumeric
中排除“ /”?
Private Sub textbox1_Change()
If Not IsNumeric(TextBox1.Value) Then
MsgBox "only numbers allowed"
With TextBox1
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
Dim strTemp As String
If TextBox1.TextLength = 8 Then
Me.TextBox1.Value = Format(Me.TextBox1.Value, "0000/00/00")
End If
End Sub
答案 0 :(得分:0)
使用KeyPress
或KeyDown
事件(可能更容易使用KeyPress
)来管理可以添加哪些字符。
在上述情况下,您必须根据字段中字符串的长度来控制字符范围。
0
到9
的ASCII)\
\
!此模式重复到下一个数字块。最后一位数字可以是2位或4位数字。
编辑:我的区块与OP的排列顺序相反。如上所述,第一个块只能接受4位数字,后跟\
和其他两位数字块。但是概念仍然相同,使用Key*
事件来控制可以基于TextBox中已有的字符串输入的内容。
除非字符串完整,否则不要启用“确定”按钮。这意味着直到第三个数字块才出现,只有在第二个数字块中有2或4个数字时才表示。
始终启用“取消”(Cancel)按钮,以便他们可以随时退出。上述方法不能保证有效的日期(如果需要的话),因此在启用“确定”按钮之前,需要进行其他检查。
使用上述方法,并且不允许用户接受无效数字,这意味着更少的错误检查机会!
当然,您也可以使用DateTimePicker!