IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

condition (if) sur un textebox [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Par défaut condition (if) sur un textebox
    Bonsoir
    je vous demande de l'aide pour comprendre ce que je n'arrive pas à comprendre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
            If IsNumeric(Me.TextBox1.Text) = False Then
                Me.TextBox1.Text = "tata"  ' N° 1
                Me.TextBox1.Text = "tata"  ' N° 2
            End If
    quand je tape par exemple 'm' le combobox affiche bien 'tata', s'agit-il de tata N° 1 ou N°2 ?
    Merci
    (ce n'est que le début de mon problème)

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salut

    Si tu codes comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            If IsNumeric(Me.TextBox1.Text) = False Then
                Me.TextBox1.Text = "tata N° 1"
                Me.TextBox1.Text = "tata N° 2"
            End If
    qu'apparait il dans ton TextBox1 ?

    Si tu codes comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            If IsNumeric(Me.TextBox1.Text) = False Then
                Me.TextBox1.Text = "tata N° 1"
                Else
                Me.TextBox1.Text = "tata N° 2"
            End If
    En tapant un chiffre, il apparait quoi dans le TextBox1?
    En tapant tout autre chose qu'un chiffre, il apparait quoi dans le TextBox1?

    Par anticipation, Comment ne saisir que des caractères numériques dans mon TextBox ? va t'être utile.
    Un lien qui semblerai interessant aussi Tutoriels pour débutants et cours complets pour apprendre la programmation DotNet.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre éclairé Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Par défaut
    Bonjour et merci pour la réponse
    avec ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            If IsNumeric(Me.TextBox1.Text) = False Then
                Me.TextBox1.Text = "tata N° 1"
                Me.TextBox1.Text = "tata N° 2"
            End If
    Quand je tape un nombre, c'est ce nombre qui s'affiche.
    Quand je tape une lettre, c'est le crash --> System.StackOverflowException

    avec ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If IsNumeric(Me.TextBox1.Text) = False Then
                Me.TextBox1.Text = "tata N° 1"
                Else
                Me.TextBox1.Text = "tata N° 2"
            End If
    c'est toujours "tata N° 1" qui s'affiche quelque soit le caractère tapé.
    j'en conclus, d'ailleurs c'est pour ça que j'ai créé ce sujet, qu'à chaque fois que je change la valeur de Me.TextBox1.Text à l'intérieur de de la procédure, toute la procédure "TextBox1_TextChange" se relance. C'est pour ça que dans le premier code, quand je tape une lettre (donc non numérique), je rentre dans la condition, -->Me.TextBox1.Text = "tata N° 1" suivie immédiatement de la réaffectation "Me.TextBox1.Text = "tata N° 2", qui n'est pas numérique, ce qui déclenche à nouveau la procédure ..... Donc une boucle infinie, d'où le message System.StackOverflowException.
    Pour le 2ème code, quand je tape "m", Me.TextBox1.Text = "tata N° 1"; quand je tape "5" , Me.TextBox1.Text = "tata N° 2" (non numérique) la procédure est relancée, je rentre dans le if donc Me.TextBox1.Text = "tata N° 1"
    ai-je bien compris

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Re

    Citation Envoyé par stracoma
    ai-je bien compris
    Oui
    Regardes le 1er lien, tu as toutes les réponses pour comprendre la façon de maitriser les entrées numérique dans un TextBox.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre éclairé Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Par défaut
    Merci beaucoup
    C'est résolu

  6. #6
    Membre éprouvé
    Homme Profil pro
    Etude technique THT
    Inscrit en
    Juillet 2012
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Etude technique THT
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2012
    Messages : 84
    Par défaut Une autre exemple pour comprendre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    Public Class Form1
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Label1.Text = Nothing
            Init_point()
        End Sub
     
        Private Sub Init_point() ' Force la culture à autoriser le point pour les décimales
            Dim oldDecimalSeparator As String = Application.CurrentCulture.NumberFormat.NumberDecimalSeparator
     
            If Not oldDecimalSeparator = "." Then ' Si se n'est pas un point
                Dim forceDotCulture As Globalization.CultureInfo
                forceDotCulture = CType(Application.CurrentCulture.Clone(), Globalization.CultureInfo)
                forceDotCulture.NumberFormat.NumberDecimalSeparator = "."
                Application.CurrentCulture = forceDotCulture
            End If
     
        End Sub
     
        Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
     
             If TextBox1.Text = Nothing Then Label1.Text = Nothing : Exit Sub
     
            If IsNumeric(TextBox1.Text) = False Then
                Label1.Text = "Non numérique : tata N° 1"
            Else
                TextBox1.Text = Replace(TextBox1.Text, " ", "") ' 'Remplace les espaces par rien.
                TextBox1.Select(TextBox1.Text.Length, 0) ' Position du curseur en fin de chaine  ' TextBox1.Select(0, 0) ' Position du curseur en début de chaine
                Label1.Text = "Numérique : tata N° 2"
            End If
     
        End Sub
    End Class

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Condition Visible sur Formulaire Continus
    Par SeaWolf601 dans le forum Access
    Réponses: 4
    Dernier message: 24/10/2006, 10h45
  2. condition where sur un type Oui/Non
    Par greg64 dans le forum Access
    Réponses: 3
    Dernier message: 20/04/2006, 12h42
  3. Réponses: 3
    Dernier message: 16/02/2006, 16h58
  4. Réponses: 9
    Dernier message: 21/11/2005, 18h51
  5. Condition IF sur plusieurs valeurs
    Par davelop dans le forum ASP
    Réponses: 5
    Dernier message: 10/06/2005, 11h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo