이 프로그램을 작성 중이며 문제가 있습니다.텍스트 상자는 숫자, 문자 및 백 스페이스 만 허용합니다. 텍스트 상자에 입력 한 첫 번째 문자는 숫자가 될 수 없습니다.
그래서 숫자, 문자 및 백 스페이스 만 허용하는 텍스트 상자가 있습니다. 첫 번째 문자는 입력란에 입력 할 수 없습니다. 텍스트 상자의 길이는 최대 6입니다. 텍스트 상자는 추가 문자 또는 사용자 이름의 첫 번째 문자로 입력 된 자를 포함하여 잘못된 문자를 거부합니다.
다음 코드가 있지만 작동하지 않으며 그 이유를 알 수 없습니다.
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
그러나, 당신은 바퀴를 재발견하려는 : 당신이 당신의 KeyPress 이벤트의 핸들 절을 생략했기 때문에
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
Dim char1 As Char = e.KeyChar
If (char1 >= 48 AndAlso char1 <= 57) Then
If ((Me.txtUserName.Text.Length = 6) Or Not Me.txtUserName.SelectionStart) Then
Interaction.Beep()
e.Handled = True
End If
ElseIf ((char1 >= 97 AndAlso char1 <= 122 OrElse char1 >= 65 AndAlso char1 <= 90)) Then
If (Me.txtUserName.Text.Length = 6) Then
Interaction.Beep()
e.Handled = True
End If
ElseIf (char1 <> 8) Then
Interaction.Beep()
e.Handled = True
End If
End Sub
은 왜 MaskedEdit 컨트롤을 사용하거나 확인하지 사용되는 패턴은 이전에 사용 마스크 예를 약간 다릅니다, 여기에 마스크에 정규식 것과 같습니다 그들이 끝나면 항목? 사용자는 일반적으로 단순한 오타가있는 경우 꾸짖거나 삐 소리가 나는 것과 비슷합니다. – Plutonix
숫자는 ASCII입니다. http://ee.hawaii.edu/~tep/EE160/Book/chap4/subsection2.1.1.1.html – Lee