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 :

Mettre en surbrillance le texte d'un TextBox


Sujet :

VB.NET

  1. #1
    Invité(e)
    Invité(e)
    Par défaut Mettre en surbrillance le texte d'un TextBox
    Bonjour à tous
    J'ai Visual Studio 2010 et j'utilise Visual Basic
    Je voudrais sélectionner le texte d'un TextBox sur Entrée (GotFocus ou Enter)
    J'ai remarqué que la sélection n'a effet que quand on utilise la touche Tab, mais si on utilise la souris le texte n'est pas mis en surbrillance, il ne se passe rien.
    En VB5 et VB6 je n'avais pas de problèmes pour sélectionner du texte.

    J'ai essayé TextBox1.SelectAll() dans TextBox1_Enter
    J'ai essayé TextBox1.Select(1,len(TextBox1.Text))
    J'ai essayé SelectionStart et SelectionLength

    Enfin j'ai ajouté une 2ème procédure TextBox1_MouseUp
    Ça a marché mais avec un petit défaut. Un 2ème clic devrait désélectionner le texte, or le texte reste toujours sélectionné, pas moyen de placer le curseur là où je veux avec la souris.

    C'est un peu frustrant. Il y a des choses qui sont devenues plus compliquées en .NET

    Merci de votre aide

  2. #2
    Membre expérimenté Avatar de anonymousse
    Profil pro
    Inscrit en
    Février 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 130
    Par défaut
    bonsoir,

    le problème vient du timing de gestion des évènement click et enter, tu dois faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim SelectAllTextInTextBox1 As Boolean = False
     
    Private Sub TestTextBox_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TestTextBox.Enter
       SelectAllTextInTextBox1 = True
    End Sub
     
     
    Private Sub TextBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Click
       If SelectAllTextInTextBox1 Then
          TextBox1.SelectAll()
          SelectAllTextInTextBox1 = False
       End If
    End Sub
    bon code ...

  3. #3
    Invité(e)
    Invité(e)
    Par défaut
    Merci beaucoup pour ton aide. J'ai tant galéré avec ce problème.
    L'idée est IMPECABLE. Bien que j'ai du faire une toute petite réctification pour éviter un autre défaut avec TAB (j'ai ajouté SelectAll dans Enter aussi). Le résultat final est nickel.

    J'ai fait un exemple de 3 TextBox avec ce code:
    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
     
        Dim T As Boolean 
     
        Private Sub TextBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles _
            TextBox1.Enter, TextBox2.Enter, TextBox3.Enter
            sender.SelectAll()
            T = True
        End Sub
     
        Private Sub TextBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles _
            TextBox1.Click, TextBox2.Click, TextBox3.Click
            If T Then
                sender.SelectAll()
                T = False
            End If
        End Sub

    MERCI INFINIMENT
    Dernière modification par Deepin ; 08/03/2011 à 10h27.

Discussions similaires

  1. [C#] mettre en majuscule le texte d'un controle textbox
    Par grome dans le forum Windows Forms
    Réponses: 4
    Dernier message: 09/10/2011, 00h12
  2. BCB6 mettre en surbrillance le texte
    Par winow dans le forum C++Builder
    Réponses: 8
    Dernier message: 08/10/2005, 22h13

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