0

I have a textbox has a maxlength of 18, e.g Textbox=ABC123456789012345
i want that the first 3 input must be letters only.

2
Contributors
2
Replies
3
Views
4 Years
Discussion Span
Last Post by brylle
-1
Ok its fun solving it. anyways heres the code :)


'Subroutine for Letteronly
Private Sub LetterOnly(ByVal e As System.Windows.Forms.KeyPressEventArgs)
        If Asc(e.KeyChar) < 65 Or Asc(e.KeyChar) > 90 And Asc(e.KeyChar) < 97 And Asc(e.KeyChar) > 122 Then
            If (Asc(e.KeyChar) <> 32) Then
                e.Handled = True
            End If
        End If

        If Asc(e.KeyChar) = 8 Then
            e.Handled = False
        End If

    End Sub

'Subroutine for Numberonly
Private Sub NumberOnly(ByVal e As System.Windows.Forms.KeyPressEventArgs)
        If Asc(e.KeyChar) < 48 Or Asc(e.KeyChar) > 57 Then
            e.Handled = True
        End If

        If Asc(e.KeyChar) = 8 Then
            e.Handled = False
        End If

 End Sub

 'Do the trick
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress

        If TextBox1.Text.Length >= 0 And TextBox1.Text.Length < 3 Then
            Call LetterOnly(e)
        ElseIf TextBox1.Text.Length >= 3 Then
            Call NumberOnly(e)
        End If

        If TextBox1.Text.Length = 17 Then
            TextBox1.Enabled = False
        End If

    End Sub
Votes + Comments
Don't hand out full solutions, the OP should be doing their own work. The code's very buggy anyways.
This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.