在vb6上创建混合一些字母和数字的个性化蒙面文本框

在vb6上创建混合一些字母和数字的个性化蒙面文本框,vb6,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文本框中设置格式。您能帮助我吗?最简单的方法是检查按键事件并确定按键是否有效。看起来您有一个定义良好的格式,所以我在表单中添加了一个文本框,并将其

我需要在用户按键时创建一个文本框,以填充图案:

[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文本框中设置格式。您能帮助我吗?

最简单的方法是检查按键事件并确定按键是否有效。看起来您有一个定义良好的格式,所以我在表单中添加了一个文本框,并将其最大长度设置为36。我在按键事件中添加了代码来检查有效的按键。我还在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