我有一个文本框,用户可以在其中输入邮政编码或邮政编码;尽管我们知道,每个都彼此不同(邮政编码可以是 A1B2C3,而邮政编码可以是 12345)
如果让他们将代码放在文本框中,如果它是文本,它会自动将输入大写,并且不让他们放置空格,我将如何做到这一点?
我尝试过使用掩码,但它使我限制了他们可以输入的字符数量,并且每个字符的数量都不同,所以它不起作用。
我尝试过使用掩码,但它使我限制了他们可以输入的字符数量,并且每个字符的数量都不同,所以它不起作用。
您不必只满足于一个输入掩码。您可以安排您的表格,以便在邮政编码之前输入国家/地区,然后相应地调整输入掩码。例如,如果您对国家/地区使用组合框,则它可能具有更新后事件处理程序,例如
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
这些事情可能有点挑剔,但它最终可能会给你比“一刀切”的方法更好的结果。
..加拿大邮政编码确实有空格,但看看你的个人资料,我很确定你知道.. ;)
您可以通过处理文本框的 KeyDown 和 KeyPress 事件纯粹在 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