none
Problème de retour en arrière dans une texteBox Retour en arrière après un point (.) RRS feed

  • Question

  • Bonjour,

    Je voulais savoir si cela serai possible d'intégré la touche revenir en arrière dans mon code.

    Il ne fonctionne pas quand je met tout de suite après un point (.) (Dans une textBox)

    (Ps: Je sais que le code est juste mais je ne peux pas faire un retour en arrière après le point (.)

    Pourriezvous m'aider svp merci :)
    • Modifié Yannel777 mercredi 8 février 2017 16:25
    mercredi 8 février 2017 08:49

Réponses

  • Bonsoir,

    le code :

    Public Class Form1
    
        Private Sub TextBox1_KeyPress(sender As System.Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            If Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "." AndAlso e.KeyChar <> ControlChars.Back Then
                e.Handled = True
            End If
        End Sub
    
        Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
            If TextBox1.Text.Contains(".") Then
                If Mid(TextBox1.Text, TextBox1.Text.Length, 1) = "." Then
                    TextBox1.MaxLength = TextBox1.TextLength + 2
                End If
            End If
        End Sub
    
    
        Private Sub TextBox1_Validated(sender As System.Object, e As System.EventArgs) Handles TextBox1.Validated
            If TextBox1.TextLength > 0 Then
                TextBox1.Text = FormatNumber(Val(TextBox1.Text).ToString, 2)
            End If
        End Sub
    
        Private Sub TextBox1_Validating(sender As System.Object, e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
            Me.Validate()
        End Sub
    End Class

    Pour avoir des espaces entre les chiffres , il faut appuyer sur un buttons ou autre chose pour valider dans le textbox1.text.

    cordialement,

    samedi 11 février 2017 19:23
  • Bonjour,
    Voici quelques exemples dans ce thread: allow numbers, dots and backspace and delete in textbox.

    Cordialement,
    Nina

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    jeudi 9 février 2017 07:55
    Modérateur

Toutes les réponses

  • Bonjour,
    Voici quelques exemples dans ce thread: allow numbers, dots and backspace and delete in textbox.

    Cordialement,
    Nina

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    jeudi 9 février 2017 07:55
    Modérateur
  • Bonjour, merci de votre réponse,

    Finalement, j'ai utiliser ce code là: 

        Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            If e.KeyChar <> ControlChars.Back Then
                e.Handled = Not (Char.IsDigit(e.KeyChar) Or e.KeyChar = ".")
            End If
        End Sub

    Il fonctionne très bien mais comment intégré pour mettre juste 2 chiffres après un point et mettre des séparations tout les 3 chiffres  pour différencier les milliers??

    Par exemple: "100 000 000.00" ou en "8 142 025.47"

    Merci de votre réponse.
    • Modifié Yannel777 jeudi 9 février 2017 09:08
    jeudi 9 février 2017 09:00
  • Bonsoir,

    voici un exemple pour séparer des milles ( ex : 999 999 999) :

    Private Sub TextBox1_Validating(sender As System.Object, e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
            If Double.TryParse(TextBox1.Text, vbNull) Then
                TextBox1.Text = FormatNumber(TextBox1.Text, 0, TriState.False, , TriState.True)
            Else
                e.Cancel = True
            End If
        End Sub

    Pour limiter deux chiffre après le points :

     Private Sub TextBox1_KeyPress(sender As System.Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            If Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "." AndAlso e.KeyChar <> ControlChars.Back Then
                e.Handled = True
            End If
        End Sub
    
        Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
            If TextBox1.Text.Length > 1 Then
                If Mid(TextBox1.Text, TextBox1.Text.Length, 1) = "." Then
                    TextBox1.MaxLength = TextBox1.TextLength + 2
                End If
            End If
            
        End Sub

    cordialement,

    jeudi 9 février 2017 19:52
  • Bonjour Zorro591,

    Merci de votre aide, j'ai repris  votre code au sujet du " séparer des millers ( ex : 999 999 999) "

    Merci de votre aide, j'ai repris  votre code au sujet du "séparer des milles ( ex : 999 999 999)"
    
    Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
            If Double.TryParse(TextBox1.Text, vbNull) Then
                TextBox1.Text = FormatNumber(TextBox1.Text, 0, TriState.False, , TriState.True)
            Else
                e.Cancel = False
            End If
        End Sub

    mais le problème c'est que cela fonctionne pas du tout.

    Donc  j'ai  fais des recherches approfondies sur internet mais j'ai trouvé ce code la  avec

    ".ToString"

    comme par exemple:

    Dim mon_nombre As Long = 123456789          Textbox1.Text = mon_nombre.ToString("#,###,###,##0.00")

    ' "mon_nombre" doit être celui que je tape aléatoire dans mon Textbox.

    ou

    TextBox1.Text = Format(TextBox1.Text, "# ##0.00")

    Peut-on le modifier pour ce code pour l'intrégrer à mon logiciel si possible?

    Pourriez-vous m'aider svp merci :)





    • Modifié Yannel777 samedi 11 février 2017 12:06
    vendredi 10 février 2017 10:01
  • Bonsoir,

    le code :

    Public Class Form1
    
        Private Sub TextBox1_KeyPress(sender As System.Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            If Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "." AndAlso e.KeyChar <> ControlChars.Back Then
                e.Handled = True
            End If
        End Sub
    
        Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
            If TextBox1.Text.Contains(".") Then
                If Mid(TextBox1.Text, TextBox1.Text.Length, 1) = "." Then
                    TextBox1.MaxLength = TextBox1.TextLength + 2
                End If
            End If
        End Sub
    
    
        Private Sub TextBox1_Validated(sender As System.Object, e As System.EventArgs) Handles TextBox1.Validated
            If TextBox1.TextLength > 0 Then
                TextBox1.Text = FormatNumber(Val(TextBox1.Text).ToString, 2)
            End If
        End Sub
    
        Private Sub TextBox1_Validating(sender As System.Object, e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
            Me.Validate()
        End Sub
    End Class

    Pour avoir des espaces entre les chiffres , il faut appuyer sur un buttons ou autre chose pour valider dans le textbox1.text.

    cordialement,

    samedi 11 février 2017 19:23