.NET zone de texte - de la Manipulation de la Touche Entrée
Ce qui est définitivement le meilleur moyen de l'exécution d'une action basée sur la saisie de l'utilisateur de la touche Entrée (Keys.Enter
) dans une .NET TextBox
, en supposant que la propriété de la clé d'entrée qui mène à la suppression de la touche Entrée à la zone de texte lui-même (e.Manipulés = true)?
Supposer pour les besoins de cette question que le comportement désiré est de ne pas appuyer sur le bouton par défaut de la forme, mais plutôt certains autres traitements personnalisés qui devrait se produire.
- WinForms ou WPF?
- Je ne comprends pas la question. Demandez-vous ce que l'action à effectuer, ou de demander comment faire, ou de demander comment faire pour être averti lorsque l'événement se produit?
- D'une meilleure façon est de ne rien faire. La touche Entrée est bien définie de sens dans la conception de l'INTERFACE utilisateur qui ne doit pas être altéré. Arbitrairement de l'utiliser pour les modifications de focus dans un formulaire et l'AcceptButton dans une autre boîte de dialogue juste confuzzles l'utilisateur à n'en plus finir.
- ChrisW: Les bases sont tous vraiment évident. Ce que je suis après ici est de savoir comment gérer les risques associés à l'implémentation naïve, comme le fait que si vous disposez de données lié à la propriété de Texte, puis par le temps que vous avez traités, disons, l'événement KeyDown la source de données n'a pas été mis à jour avec la valeur stockée dans la zone de texte. @Hans Passant: je vous entends. Dans ce cas, il est utilisé dans le contexte d'une recherche en plein texte de la boîte qui est couplé avec en option (rarement utilisée) autres entrées. En appuyant sur entrée doit effectuer la recherche.
Vous devez vous connecter pour publier un commentaire.
Ajouter un événement keypress et piège la touche entrée
Par programmation, il semble un peu comme ceci:
Puis Ajouter un gestionnaire dans le code...
Afin de lier la fonction avec la touche de la conférence de presse de la zone de texte ajouter le code suivant dans le concepteur.cs de la forme:
Maintenant définir la fonction "OnKeyDownHandler' dans le fichier cs de la même forme:
Vous pouvez les déposer dans la FormLoad événement:
ev.Handled = true;
mis à Jour le post.