Lorsqu'une zone de texte C # WinForms reçoit le focus, je veux qu'elle se comporte comme la barre d'adresse de votre navigateur.
Pour voir ce que je veux dire, cliquez sur dans la barre d'adresse de votre navigateur Web. Vous remarquerez le comportement suivant:
- Cliquer dans la zone de texte devrait sélectionner tout le texte si la zone de texte n'était pas focalisée auparavant.
- Faites glisser la souris vers le bas et faites glisser dans la zone de texte pour sélectionner uniquement le texte que j'ai mis en évidence avec la souris.
- Si la zone de texte est déjà focalisée, cliquer ne sélectionne pas tout le texte.
- La mise au point de la zone de texte par programme ou via la tabulation du clavier doit sélectionner tout le texte.
Je veux faire exactement cela dans WinForms.
ALERTE FASTEST GUN: veuillez lire ce qui suit avant de répondre! Merci les gars. :-)
L'appel de .SelectAll () pendant les événements .Enter ou .GotFocus ne fonctionnera pas car si l'utilisateur a cliqué sur la zone de texte, le curseur sera placé là où il a cliqué, désélectionnant ainsi tout le texte.
L'appel de .SelectAll () pendant l'événement .Click ne fonctionnera pas car l'utilisateur ne pourra pas sélectionner de texte avec la souris; l'appel .SelectAll () continuera d'écraser la sélection de texte de l'utilisateur.
L'appel de BeginInvoke ((Action) textbox.SelectAll) sur focus / enter event enter ne fonctionne pas car il enfreint la règle n ° 2 ci-dessus, il continuera à remplacer la sélection de l'utilisateur sur le focus.