我有一個文本框,用戶可以輸入郵政編碼或郵政編碼;雖然我們知道,每個彼此 不同(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
這些東西可以有點繁瑣,但它可能最終給你比一個更好的結果「一刀切」的做法會。
..和加拿大郵政編碼做在他們的空間,但在看您的個人資料我敢肯定你知道....;)