8
votes

Déclencher une touche de clavier Appuyez sur l'événement sans appuyer sur la touche du clavier

Comment puis-je déclencher une touche Appuyez sur l'événement sans appuyer sur la touche du clavier? J'ai essayé avec la solution de ici , mais je Vous avez l'exception suivante:

La meilleure correspondance de la méthode surchargée pour 'System.Windows.presentionsource.fromvisual (System.Windows.Media.Visual)' a des arguments invalides.

considérer shift + a contient 2 touches appuyez sur l'événement à partir du clavier, comment puis-je le faire sans clavier en appuyant sur le bouton?

mon code xxx


4 commentaires

Avez-vous essayé l'exemple SendKeys dans votre lien?


@ Randomus1r, oui j'ai essayé, mais a besoin d'une cible d'envoyer cette clé.Si a 10 boîtes de texte sous une forme, alors quels devraient être les critères? Je veux écrire un endroit où il y a une mise au point actuelle pour laquelle j'ai utilisé le clavier.focususedelement dans le code ci-dessus. Vous avez une idée?


J'utiliserais la classe FocalisMagerner à la place: MSDN.MicRosoft. COM / EN-US / Bibliothèque / ... . Au niveau supérieur, je voudrais probablement essayer de mettre en œuvre quelque chose comme celui-ci à JQuery.


@ Randomus1r jQuery ... dans WPF?!?


3 Réponses :


0
votes

Un moyen facile et fiable de simuler l'événement du clavier consiste à utiliser l'API KeyBD_Event API

Vous pouvez y faire référence ici ici

http://www.pinvoke.net/default.aspx/user32.keybd_event < / a>

Il y a d'autres articles dessus ici

http://www.codeproject.com/ Articles / 7305 / Clavier-Events-Simulation - Utilisation-keybd_event-Funct


0 commentaires

2
votes

Vous devez lancer vers visuel code>: xxx pré>

Vous pouvez également spécifier que votre cible est une zone de texte spécifique, par exemple: P>

private void textBox1_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{

}


6 commentaires

Mais une nouvelle exception en essayant votre code ci-dessus, la valeur ne peut pas être null.paramètre Nom: V ...


Je pose ce code dans un bouton Cliquez sur l'événement (est-ce un problème?). Et l'exception complète était que ce que j'ai mentionné.


@ridoy i aussi dans un bouton cliquez sur un bouton, mais je n'utilise pas cette ligne var cible = clavier.focususéélément; car l'élément ciblé serait le bouton, vous devez spécifier la cible en tant que Nom de votre zone de texte. E.g: var cible = votretextbox;


Je vois, merci d'avoir pointé l'erreur.Mais, je dois le faire pour tout cas, pas pour une seule zone texte.assume, j'ai 10 textes de texte sous une forme, alors quels devraient être les critères?


Vous pouvez définir le bouton Focigable = "FALSE" . Et vous pouvez utiliser var cible = clavier.focususéélément; de cette façon, la zone de texte sera focalisée même si vous cliquez sur le bouton.


Merci pour votre effort. System.windows.forms.sendkeys.send ("a") a fait le tour pour moi :)



11
votes

system.windows.forms.sendkeys.send () a fait le tour pour moi.

Pour des instructions avancées et la liste des codes disponibles, consultez Les docs pour la méthode .

Par exemple, envoyer Shift + a a utilisé sendkesys.send ("+ (a)") . .


0 commentaires