2014-12-18 26 views
2

我需要創建一個文本框,當用戶按下鍵將填補模式:創造VB6的個性化屏蔽文本框混合一些字母和數字

[A-F0-9]{8}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{12} 

有效的例子是:

63CDB75C-D58A-4100-8C24-9E6433E263B0 

用戶只能在組8-4-4-4-12總數中按A..F和0..9。

但我不知道如何格式化它在vb6文本框。你可以幫我嗎?

回答

1

簡單的方法是檢查KeyPress事件並確定密鑰是否有效。看起來你有一個明確的格式,所以我添加了一個文本框到表單中,並將它的最大長度設置爲36.我在KeyPress事件中添加了代碼來檢查有效密鑰。我還在Changed事件中添加了代碼,以將連字符附加到當前文本,而不是讓用戶輸入它。當然這很簡單,所以你可能需要添加它來專門爲你工作。例如,現在您無法使用粘貼到文本框中。Ctrl + V。此外,連字符鍵當前不允許,所以如果他們刪除連字符,他們將不得不重新開始取回。也沒有錯誤處理程序。

Private Sub Text1_Change() 

    If Len(Text1.Text) = 8 _ 
     Or Len(Text1.Text) = 13 _ 
     Or Len(Text1.Text) = 18 _ 
     Or Len(Text1.Text) = 23 Then 
     Text1.Text = Text1.Text & "-" 
     Text1.SelStart = Len(Text1.Text) 
    End If 

End Sub 

Private Sub Text1_KeyPress(KeyAscii As Integer) 

    KeyAscii = Asc(UCase$(Chr$(KeyAscii))) 'force all characters to upper case 

    Select Case KeyAscii 
     Case 8, 48 To 57, 65 To 70 '8 is the backspace, 48 to 57 is 0 to 9, 65 to 70 is A to F 
     Case Else 
      KeyAscii = 0 'Cancel the key 

    End Select 

End Sub 
相關問題