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 :

[VB.NET] Sélection de texte dans un textbox


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 284
    Points : 94
    Points
    94
    Par défaut [Résolu][VB.NET] Sélection de texte dans un textbox
    Je souhaiterai mettre en surbrillance le contenu de mes textbox à chaque fois que je prend le focus (évenement gotfocus). J'ai essayé avec la méthode selectall et select(start,length) mais ca ne fonctionne pas.

    Quelqu'un aurait il une petite idée sur ce point?


    D'avance, je vous remercie

  2. #2
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            ' On arrive dans le controle on selectionne tout le texte
            Private Sub txtJ_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtJ.Enter
                txtJ.SelectAll()
            End Sub
    moi je fais comme ça

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    Le problème provient de la gestion du clic par TextBox
    Un clic place le curseur à l'endroit cliqué et comme ça arrive après l'événement Enter, cela annule la sélection effectuée dans cet événement.

    J'ai une solution qui fonctionne (en C#) :
    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
            /// <summary>
            /// flag pour sélectionner le textbox au premier clic après entrée focus
            /// </summary>
            private bool _selectOnClick=false;
            //
            private void textBox1_Enter(object sender, EventArgs e) {
                _selectOnClick = true;
                }
            //
            private void textBox1_Click(object sender, EventArgs e) {
                if (_selectOnClick) {
                    this.textBox1.SelectAll();
                    _selectOnClick = false;
                    }
                }
    Le premier clic après la sélection du TextBox sélectionne l'ensemble du texte.
    Il y a juste un défaut quand on sélectionne le TextBox avec la touche Tab.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 284
    Points : 94
    Points
    94
    Par défaut
    Merci , ca fonctionne nickel

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    La discussion est cloturée depuis longtemps mais je soumets tout de même une réponse...

    Effectivement, c'est l'évènement Click qui annule l'effet du SelectAll.
    Pour le contourner, j'utilise ce code dans mes classes dérivée :

    Dim IsSel As Boolean = False

    Private Sub TextBox_Click(sender As Object, e As System.EventArgs) Handles TextBox.Click
    If Not IsSel Then TextBox.SelectAll() : IsSel = True
    End Sub

    Private Sub TextBox_Enter(sender As Object, e As System.EventArgs) Handles TextBox.Enter
    TextBox.SelectAll()
    End Sub

    Private Sub TextBox_Leave(sender As Object, e As System.EventArgs) Handles TextBox.Leave
    IsSel = False
    End Sub


    De cette façon, que l'on navigue au clavier (TAB) ou à la souris, le résultat est le même : l'entrée dans la TextBox sélectionne son contenu et un (second) click est géré normalement.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Points : 31
    Points
    31
    Par défaut
    Merci pour ce bout de code, il fonctionne très bien !

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

Discussions similaires

  1. [VB.NET] Couleur du texte dans un TextBox désactivé
    Par Cricket dans le forum Windows Forms
    Réponses: 9
    Dernier message: 08/10/2013, 22h16
  2. Réponses: 14
    Dernier message: 13/09/2007, 12h26
  3. [C++.NET] Valeurs min/max dans une TextBox
    Par raboin dans le forum VC++ .NET
    Réponses: 4
    Dernier message: 06/04/2006, 17h15
  4. [VB.Net] Bloqué le texte d'un textbox
    Par x dans le forum Windows Forms
    Réponses: 4
    Dernier message: 28/07/2005, 14h38

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