Comment Interpréter une Entrée de pression de Touche comme un Onglet en C#
Je viens tout juste commencé en développement C#, et je travaillais sur une base de formulaires de projet et je suis en train d'effectuer un "onglet" action lorsque l'utilisateur est sur un formulaire, et appuyé sur la touche Entrée.
Je sais que la réponse est très simple, mais je suis un newbie dans ce domaine.
double possible de Comment faire Entrer sur une zone de texte agissent comme des ONGLET bouton
Il est intéressant de noter que c'est pas le comportement standard de Windows. Non seulement est primordial, il est soumis à la confusion de vos utilisateurs, mais en essayant de remplacer les valeurs par défaut est toujours plus de travail que de tout simplement agir comme votre plateforme attend de vous. Code comme cela peut facilement devenir une maintenance cauchemar, avec des bugs étranges qui rôdent.
Il est intéressant de noter que c'est pas le comportement standard de Windows. Non seulement est primordial, il est soumis à la confusion de vos utilisateurs, mais en essayant de remplacer les valeurs par défaut est toujours plus de travail que de tout simplement agir comme votre plateforme attend de vous. Code comme cela peut facilement devenir une maintenance cauchemar, avec des bugs étranges qui rôdent.
OriginalL'auteur | 2011-01-07
Vous devez vous connecter pour publier un commentaire.
Bienvenue DONC, Tex,
Je crois qu'il y a deux méthodes pour cela, serait tout simplement d'ajouter:
Option 1: saisir la commande Suivante si une Entrée de pression de Touche a été réalisée
Dans les propriétés de votre formulaire, définissez la KeyPreview propriété de la forme de
true
.Le code ci-dessous permettra de saisir votre "Entrée de Presse" de l'événement et de l'exécution de la logique que vous êtes à la recherche pour:
Ce fait permet à l'utilisateur d'appuyer sur "Maj+Entrée" pour aller à la procédure onglet.
Option 2: Utilisation de la SendKeys méthode
Je ne sais pas si cette méthode est encore couramment utilisée ou peut être considéré comme un "hack"? Je recommanderais le premier, mais je pense que les deux doivent travailler pour vos besoins.
OriginalL'auteur Rion Williams
Tout d'abord, préparer un Dictionnaire , où la clé est la première commande et la valeur est la deuxième. Boucle à travers tous les contrôles du Formulaire de Contrôle de la collecte, les mettre dans une liste triée par TabIndex, et de les convertir dans un Dictionnaire.
Vous auriez besoin de code dans l'événement KeyPress pour chaque objet, ou sous-catégorie de zone de texte à inclure cette logique. De toute façon, dans l'événement KeyPress, si l'entrée est Entrée, d'obtenir les éléments suivants de contrôle de votre dictionnaire et du Contrôle de l'utilisation.GetFocus().
Espère que ça aide! Je peux fournir plus de détails si vous le souhaitez.
Ce qui est triste, c'est fait, je pensais que de le faire moi-même, mais seulement parce qu'un ToolStripBar contrôles n'ont pas de propriété TabStop par défaut, nous nous sommes retrouvés juste se débarrasser de la ToolStrip ( nous étions à un stade où cela était possible ).
C'est parce que des éléments sur un
ToolStrip
/ToolStripMenuBar
ne pouvez pas obtenir le focus. N'importe quel stade du projet, vous avez découvert que vous avez besoin de se débarrasser de lui et de changer votre conception.OriginalL'auteur
Vous pouvez gérer les événements de clavier sur le niveau de Forme et sur demande complète de niveau à l'aide de l'Application.AddMessageFilter et IMessageFilter interface.
Tous ces événements ont "Manipulé" les biens dont vous pouvez définir la valeur "True" si vous allez gérer certains manuelle de la clé. (Dans votre cas, la touche Entrée).
Voici un exemple de comment intercepter les événements clés pour les deux niveaux: Clavier la gestion des événements .NET applications
OriginalL'auteur HABJAN
OriginalL'auteur Kirtish