Iptexbox façon windows

Description

Après mainte recherche sur le net je n'est pas vraiment trouvé de contrôle ip VB qui fesait à peut près les iptextbox de windows (prise en charge des pression sur le clavier). Donc voila ma source, la vérification des informations rentré se fait toute seul je veux dire par la qu'il n'y a pas de message d'erreur qui s'affiche.

n'hésité pas a donner vos critique et les améliorations que l'on peut apporté.

Source / Exemple :


'MODIFIER
'Titre : controleur IP semblable windows
'Auteur : GARENNE Geoffrey
'Mail : g.garenne@gmail.com

Public Class IpTextBox
    'Variable de récupération de l'ip
    Public val As String
    'propriété Text récupère ou assigne la valeur
    Public Overrides Property Text() As String
        Get
            Return val
        End Get
        Set(ByVal value As String)
            val = value
            'Insertion de l'ip dans le controleur
            If val <> "" Then
                ELEM1.Text = val.Split(".").GetValue(0)
                ELEM2.Text = val.Split(".").GetValue(1)
                ELEM3.Text = val.Split(".").GetValue(2)
                ELEM4.Text = val.Split(".").GetValue(3)
            End If
        End Set
    End Property
    'Si vous désirez avoir le focus
    'avec une selection complete du texte
    'Décommenté la ligne en dessous et celle
    'juste en dessous de focus
    'Private Sub ELEM_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles ELEM1.GotFocus, ELEM2.GotFocus, ELEM3.GotFocus, ELEM4.GotFocus
    '    Select Case sender.name
    '        Case "ELEM1"
    '            ELEM1.SelectAll()
    '        Case "ELEM2"
    '            ELEM2.SelectAll()
    '        Case "ELEM3"
    '            ELEM3.SelectAll()
    '        Case "ELEM4"
    '            ELEM4.SelectAll()
    '    End Select
    'End Sub
    Private Sub ELEM_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ELEM1.TextChanged, ELEM2.TextChanged, ELEM3.TextChanged, ELEM4.TextChanged
        'Test sur le champ ELEM1 (Numérique, longueur, Valeur <= 255)
        If IsNumeric(sender.Text) = True Then
            If sender.Text.Length = 3 Then
                If sender.Text > 255 Then
                    sender.Text = 255
                End If
                If sender.name = "ELEM1" Then
                    ELEM2.Focus()
                    'ELEM2.SelectAll()
                End If
                Select Case sender.name
                    Case "ELEM1"
                        ELEM2.Focus()
                        'ELEM2.SelectAll()
                    Case "ELEM2"
                        ELEM3.Focus()
                        'ELEM3.SelectAll()
                    Case "ELEM3"
                        ELEM4.Focus()
                        'ELEM4.SelectAll()
                    Case "ELEM4"
                        val = ELEM1.Text & "." & ELEM2.Text & "." & ELEM3.Text & "." & ELEM4.Text
                End Select
            End If
        Else
            Select Case sender.name
                Case "ELEM1"
                    ELEM1.Text = Nothing
                Case "ELEM2"
                    ELEM2.Text = Nothing
                Case "ELEM3"
                    ELEM3.Text = Nothing
                Case "ELEM4"
                    ELEM4.Text = Nothing
            End Select
        End If
    End Sub

    Private Sub IpTextBox_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Leave
        'Vérification et enregistrement de l'ip dans la variable val
        'le rajout de message d'erreur est à prévoir
        'je ne l'ai pas fait car je n'en est pas trouvé l'utilité
        If ELEM1.Text = "" Or ELEM2.Text = "" Or ELEM3.Text = "" Or ELEM4.Text = "" Then
            val = Nothing
        Else
            val = ELEM1.Text & "." & ELEM2.Text & "." & ELEM3.Text & "." & ELEM4.Text
        End If
    End Sub

    Private Sub IpTextBox_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Définition de la grandeur max des elements
        ELEM1.MaxLength = 3
        ELEM2.MaxLength = 3
        ELEM3.MaxLength = 3
        ELEM4.MaxLength = 3
    End Sub
    Private Sub ELEM_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ELEM1.KeyDown, ELEM2.KeyDown, ELEM3.KeyDown, ELEM4.KeyDown
        Select Case sender.name
            Case "ELEM1"
                'Gestion des pression sur les touches (droite)
                If e.KeyCode = Keys.Right And ELEM1.SelectionStart = ELEM1.TextLength Then
                    ELEM2.Focus()
                End If
            Case "ELEM2"
                'Gestion des pression sur les touches (gauche, droite, backspace)
                If e.KeyCode = Keys.Right And ELEM2.SelectionStart = ELEM2.TextLength Then
                    ELEM3.Focus()
                End If
                If e.KeyCode = Keys.Left Or e.KeyCode = Keys.Back And ELEM2.SelectionStart = 0 Then
                    ELEM1.Focus()
                End If
            Case "ELEM3"
                'Gestion des pression sur les touches (gauche, droite, backspace)
                If e.KeyCode = Keys.Right And ELEM3.SelectionStart = ELEM3.TextLength Then
                    ELEM4.Focus()
                End If
                If e.KeyCode = Keys.Left Or e.KeyCode = Keys.Back And ELEM3.SelectionStart = 0 Then
                    ELEM2.Focus()
                End If
            Case "ELEM4"
                'Gestion des pression sur les touches (gauche, backspace)
                If e.KeyCode = Keys.Left Or e.KeyCode = Keys.Back And ELEM4.SelectionStart = 0 Then
                    ELEM3.Focus()
                End If
        End Select
    End Sub
End Class

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.