我有一个文本框,用户可以输入邮政编码或邮政编码;虽然我们知道,每个彼此 不同(A邮政编码可以A1B2C3而邮政编码可以12345)格式化邮政编码和邮政编码的文本框
我怎么会让它所以,如果让他们把代码中的文本框,它自动如果输入的是文本,则将输入大写,并且不允许输入空格?
我试过使用一个面具,但它使我限制他们可以输入的字符数量,并且每个都有不同的数量,所以它不起作用。
我有一个文本框,用户可以输入邮政编码或邮政编码;虽然我们知道,每个彼此 不同(A邮政编码可以A1B2C3而邮政编码可以12345)格式化邮政编码和邮政编码的文本框
我怎么会让它所以,如果让他们把代码中的文本框,它自动如果输入的是文本,则将输入大写,并且不允许输入空格?
我试过使用一个面具,但它使我限制他们可以输入的字符数量,并且每个都有不同的数量,所以它不起作用。
您可以通过处理文本框的KeyDown和按键事件这样做纯粹是在UI层面:
Private Sub txtPostCode_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeySpace Then KeyCode = 0
End Sub
Private Sub txtPostCode_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case Asc("a") To Asc("z")
KeyAscii = KeyAscii + Asc("A") - Asc("a")
End Select
End Sub
我已经使用掩模尝试,但它让我限制字符的数量,他们可以输入并且每个都有不同的数量,所以它不起作用。
您不一定要为一个输入掩码而解决。您可以安排表格,以便在邮政编码之前输入国家/地区,然后相应地调整输入蒙版。例如,如果您使用的是组合框的国家,那么它可能有一个更新的事件处理程序后像
Private Sub cbxCountry_AfterUpdate()
Dim strMask As String
strMask = ""
If Not IsNull(Me.cbxCountry.Value) Then
Select Case Me.cbxCountry.Value
Case "Canada"
strMask = ">L0L 0L0"
Case "U.S.A."
strMask = "00000-9999"
End Select
End If
Me.txtPostalCode.InputMask = strMask
End Sub
这些东西可以有点繁琐,但它可能最终给你比一个更好的结果“一刀切”的做法会。
..和加拿大邮政编码做在他们的空间,但在看您的个人资料我敢肯定你知道....;)