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

Windows Forms Discussion :

textbox : Tabindex + Effacement auto


Sujet :

Windows Forms

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 34
    Par défaut textbox : Tabindex + Effacement auto
    Salut à tous

    Voilà en fait chuis un peu débutant (même beaucoup) en VB.net, que j'étudie cette année car je suis en première année de STS Informatique de gestion.

    En fait je m'amusais à faire une sorte de coffre fort pour trouver une combinaison, et ouvrir donc ce coffre !

    Le principe est simple, 3 chiffres, 3 textbox avec 3 labels.
    Un random (1-10) est effectué dès qu'on clique sur le bouton "jouer" pour affecter un chiffre par variable (3 variables donc, une par TB)
    La première textbox seulement est enabled=true , si le chiffre tapé est supérieur a la valeur préalablement affecté, le label1 affichera le caractère " - " pour dire que le chiffre est trop grand, qu'il faut allez plus bas.
    Il en est de même pour le " + ".
    Si le bon chiffre est trouvé, le label marque "Ok" et la 2è textbox se déverrouille.

    J'en viens a mon soucis : j'ai fait un timer avec une progressbar, le "joueur" a 15 secondes pour trouver la combinaison, a la fin de ce délai le programme ouvre une msgbox et dit que c'est terminé et tout se retrouve bloqué.
    En revanche si il trouve, c'est OK évidemment, stop timer et tout ça...

    Donc mon problème oui ! En fait j'aimerais qu'une fois qu'un bon chiffre est trouvé, le curseur passe de lui même a la textbox qui suit.
    Le tabindex est bien défini car en appuyant sur "tab" tout défile correctement.

    Je n'ai aucune idée de comment faire, j'ai pas vu ça du tout en cours et je dois dire que j'ai rien trouvé sur le Ouèb (si déja c'est possible ?)

    Merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Cette instruction devrait faire l'affaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textBox1.SelectNextControl()
    (ça tient compte du tab index)

    sinon, pour le faire indépendemment du tab index :

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 34
    Par défaut
    Salut !

    Oui, merci beaucoup, ça marche très bien, j'ai préféré utiliser le focus !

    J'ai également un petit peu cherché mais j'ai rien trouvé (enfin je n'ai pas réussi à faire fonctionner) sur le moyen de remplacer automatiquement une valeur saisie dans une textbox, de manière à ce que, si le chiffre saisi est incorrect, l'utilisateur n'ait pas besoin de l'effacer manuellement pour le remplacer.

    J'ai également rajouté un son "clap" quand la combinaison est trouvée, mais contrairement aux images, je ne sais pas comment l'intégrer directement dans le projet... En effet, l'executable ne marche que sur mon ordinateur vu que le son est cherché sur un chemin propre à mon ordinateur.

    Je vous remercie encore

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Jodu42 Voir le message
    J'ai également un petit peu cherché mais j'ai rien trouvé (enfin je n'ai pas réussi à faire fonctionner) sur le moyen de remplacer automatiquement une valeur saisie dans une textbox, de manière à ce que, si le chiffre saisi est incorrect, l'utilisateur n'ait pas besoin de l'effacer manuellement pour le remplacer.
    ou alors j'ai pas compris ce que tu cherches à faire ?

    Citation Envoyé par Jodu42 Voir le message
    J'ai également rajouté un son "clap" quand la combinaison est trouvée, mais contrairement aux images, je ne sais pas comment l'intégrer directement dans le projet... En effet, l'executable ne marche que sur mon ordinateur vu que le son est cherché sur un chemin propre à mon ordinateur.
    Qu'est-ce qui te pose problème ? C'est le même principe que pour les images...

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 34
    Par défaut
    Salut.

    Je vais illustrer mon exemple :



    Donc voilà les 3 textbox et 3 labels dont je parlais.
    La textbox1 a la valeur correcte, donc elle déverrouille la deuxième.
    On voit que la valeur saisie est trop grande (grâce au caractère " - " du label 2), donc on va ressaisir une autre valeur.

    Ce qu'il se passe : il faut utiliser la touche d'effacement, puis saisir un autre chiffre, etc si le chiffre ne convient pas.

    Ce que je veux : si le chiffre n'est pas bon, je tape directement le nouveau chiffre, qui remplacera l'ancien.

    Mon code actuel :

    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
     
    If TextBox1.Text > nb1.ToString Then
                LB1.Text = "-"
                LB1.BackColor = Color.LightPink
            Else
                If TextBox1.Text < nb1.ToString Then
                    LB1.Text = "+"
                    LB1.BackColor = Color.LightSkyBlue
                Else
                    If TextBox1.Text = nb1.ToString Then
                        LB1.Text = nb1
                        LB1.BackColor = Color.LightSeaGreen
                        TextBox2.Enabled = True
                        TextBox2.Focus()
                    End If
                End If
            End If
    Si je met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If TextBox1.Text > nb1.ToString Then
                LB1.Text = "-"
                LB1.BackColor = Color.LightPink
                Textbox.text = ""
            Else
    La textbox se videra toute seule dès la saisie du chiffre, et je ne pourrai pas savoir si il faut mettre une valeur supérieure ou inférieure.


    Ensuite, pour les images, j'ai utilisé deux picturebox, donc aucun soucis.

    Pour le son voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    My.Computer.Audio.Play("C:\mon_chemin\clap.wav")
    Voilà le problème... la source est sur mon PC.
    Je recherche actuellement comment l'intégrer dans mon projet, je pense que je vais trouver à tête reposée

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    A mon avis, plutot que d'effacer le texte, il vaudrait mieux le sélectionner : comme ça il reste visible, mais il suffit de taper quelque chose pour l'écraser. Tu peux sélectionner tout le contenu de la TextBox avec la méthode SelectAll


    Pour le son, il suffit que tu ajoutes le fichier wav comme ressource dans ton appli. Ensuite, tu peux y accéder via My.Resources sous la forme d'un Stream, et tu le lis comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    My.Computer.Audio.Play(My.Resources.clap, AudioPlayMode.Background)

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 34
    Par défaut
    Citation Envoyé par tomlev Voir le message
    A mon avis, plutot que d'effacer le texte, il vaudrait mieux le sélectionner : comme ça il reste visible, mais il suffit de taper quelque chose pour l'écraser. Tu peux sélectionner tout le contenu de la TextBox avec la méthode SelectAll
    Très fort, c'est le résultat que j'attendais (que mon chiffre s'efface) et ta méthode est de loin la plus simple, je n'avais pas la propriété.

    Pour le son, j'ai essayé ton truc, j'ai mis quelques minutes à trouver comment intégrer une ressource mais j'ai réussi, et le code que tu m'as donné marche évidemment à la perfection

    Je te remercie grandement pour ton aide, c'est vraiment important dans un forum comme celui-ci que les débutants comme moi soient aidés !

    Encore merci !

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

Discussions similaires

  1. le TextBox s'efface quant on click dessu
    Par nimois3O dans le forum ASP.NET
    Réponses: 30
    Dernier message: 23/05/2007, 16h06
  2. [TEXTBOX] Scroller auto
    Par |DUCATI| DesMo dans le forum VBA Access
    Réponses: 6
    Dernier message: 22/05/2007, 16h22
  3. [VBA-E] Défilement auto textbox multiligne ?
    Par Ender dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/07/2006, 16h11
  4. textbox et onKeyUp event -> largeur augmente auto quand texte trop long
    Par Miketrix dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 25/07/2006, 11h14
  5. [VB]Problème d'effacement dans une TextBox
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 24/01/2006, 17h55

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