Je souhaite activer une zone de texte de recherche lorsque l'utilisateur commence à saisir quelque chose (même si la zone de texte n'est pas centrée). Je suis venu jusqu'à définir KeyPreview
sur le formulaire à true
. Ensuite, dans le gestionnaire d'événements KeyDown, j'ai ceci:C#: Activer une zone de texte lorsque l'utilisateur commence à taper
if(!searchTextBox.Focused)
{
searchTextBox.Focus();
}
Cela fonctionne presque. La zone de texte est ciblée, mais la première lettre saisie est perdue. Je suppose que c'est parce que la boîte de texte n'a jamais vraiment l'événement, car il n'était pas concentré quand il s'est produit. Alors, est-ce que quelqu'un a une solution intelligente à la façon dont je pourrais faire ce travail comme il se doit?
Je voudrais aussi quelques conseils pour que cela ne se produise que lorsque les touches normales sont pressées. Donc pas comme, les touches fléchées, les touches de modification, les touches de fonction, etc. Mais cela, je vais probablement trouver une façon de le faire. Le problème précédent en revanche, je ne suis pas sûr comment je devrais aborder ...
+ = semble fonctionner. Bien que la propriété s'appelle Text, pas Value. Donc, vous pourriez peut-être corriger cela dans votre exemple :) – Svish
Aussi, je devais ajouter searchTextBox.SelectionStart = searchTextBox.Text.Length à la fin, parce que quand je Focus() il sélectionne tout le texte. Donc, quand l'utilisateur continue à taper, tout disparaît ..: p Autre que cela, cela fonctionne totalement :) – Svish
Droit, éditera ma réponse en conséquence. – Treb