none
Limiter les chiffres dans textbox1.text RRS feed

  • Question

  • Bonjour,

    je sais pas comment faire pour limiter entre 0 jusqu'à 3 comme chiffre dans textbox1.text

    j'ai essayer ceci mais ça fonctionne pas :

    If (Me.TextBox1.Text Is Nothing) Then
            ElseIf Len(TextBox1.Text) > 3 Then
                MsgBox("Ne pas dépasser la valeur 3", MsgBoxStyle.Critical, "Erreur")
            ElseIf Len(TextBox1.Text) < 0 Then
                MsgBox("Ne pas dépasser la valeur inferieur 0", MsgBoxStyle.Critical, "Erreur")
            Else
    End if

    Pouvez -vous me dire comment faire de limiter les chiffres dans textbox1.text?

    Merci d'avance de votre réponse.

    lundi 14 mars 2016 16:22

Réponses

  • Parce que Enter n'est pas un caractère...

    Vous voulez aussi pouvoir modifier? avec BackSpace... qui lui est un caractère...

    Regardez ce que fait ce code:

    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
            Debug.Print("Textbox1 changed : " & TextBox1.Text)
        End Sub
    
        Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
            e.Handled = EstCeValide123(Asc(e.KeyChar))
    
        End Sub
        Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
            If e.KeyCode = Keys.Enter Then
                Debug.Print("Entrée a été cliqué. Valeur = " & TextBox1.Text)
            End If
        End Sub
    
        Private Function EstCeValide123(ByVal EnteredKey As String) As Boolean
            ' Backspace (8). 
            
            If (EnteredKey >= 49 And EnteredKey <= 51) Or EnteredKey = 8 Then
                EstCeValide123 = False
            Else
                EstCeValide123 = True
            End If
        End Function



    lundi 14 mars 2016 17:50

Toutes les réponses

  • Utilisez dans le Designer la propriété .MaxLength de la TextBox en question et mettez la à 3...


    lundi 14 mars 2016 16:30
  • Merci de votre réponse .

    Mais vous avez pas compris ce que je voulais faire. dans mon textbox1.MaxLength = 1

    exemple j'ai le choix entrer 0 jusqu"à 3 c'est limiter les chiffres dans textbox. si je entre 4,5,6,7,8,9. il y a un message erreur de la valeur ne pas dépasser 3. comme NumericUpDown1.Maximum = 3

    es ce que vous avez compris?

    Merci de votre compréhension.


    • Modifié zorro591 lundi 14 mars 2016 16:53
    lundi 14 mars 2016 16:50
  • Ah ok.... mais je ne vois pas pourquoi perdre du temps avec le MessageBox...mettez un Label avec "Attention Valeur de 1 à 3 seulement", ou alors utilisez un ComboBox

    Mais si vous y tenez absolument alors il vous faut tester ce qui rentre dans le texte comme ceci:

    Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
            e.Handled = EstCeValide123(Asc(e.KeyChar))
    
        End Sub
    
        Private Function EstCeValide123(ByVal ValeurText As String) As Boolean
            'Test si 1 (49) à 3 (51) 
            If (ValeurText >= 49 And ValeurText <= 51) Then
                EstCeValide123 = False
            Else
                EstCeValide123 = True
            End If
        End Function

    lundi 14 mars 2016 17:01
  • Merci de votre réponse . ça fonctionne mais il y a une petit problème  :

     Private Sub TextBox1_KeyPress(sender As System.Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            If Not (Char.IsDigit(e.KeyChar) Or Char.IsControl(e.KeyChar)) Then
            ElseIf Asc(e.KeyChar) >= 49 And Asc(e.KeyChar) <= 51 Then
                e.Handled = False
            Else
                e.Handled = True
            End If
        End Sub

    j'ai modifier votre code pourquoi la touche retour ne fonctionne pas?

    Merci de votre réponse.

    lundi 14 mars 2016 17:31
  • Parce que Enter n'est pas un caractère...

    Vous voulez aussi pouvoir modifier? avec BackSpace... qui lui est un caractère...

    Regardez ce que fait ce code:

    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
            Debug.Print("Textbox1 changed : " & TextBox1.Text)
        End Sub
    
        Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
            e.Handled = EstCeValide123(Asc(e.KeyChar))
    
        End Sub
        Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
            If e.KeyCode = Keys.Enter Then
                Debug.Print("Entrée a été cliqué. Valeur = " & TextBox1.Text)
            End If
        End Sub
    
        Private Function EstCeValide123(ByVal EnteredKey As String) As Boolean
            ' Backspace (8). 
            
            If (EnteredKey >= 49 And EnteredKey <= 51) Or EnteredKey = 8 Then
                EstCeValide123 = False
            Else
                EstCeValide123 = True
            End If
        End Function



    lundi 14 mars 2016 17:50
  • Merci pour la réponse
    lundi 14 mars 2016 18:48