2009-10-11 8 views
0

J'ai un winform simple. Dans il a un seul contrôle TextBox. En cela, j'ai câblé l'événement KeyPress. Pourquoi? J'essaie de capturer tout ce que l'utilisateur tape dans cette zone de texte. Mais, quand ils frappent le retour ou l'entrée, je prends alors tout ce qu'ils ont tapé et l'envoie à un analyseur de commande pour faire des choses.Je ne sais pas comment obtenir la sortie 'finale' d'un événement WinForm KeyPress

je puis afficher à l'écran (dans un RichTextBox) tout ce qu'ils tapés, ils savent donc la commande est sur le point de se traiter.

choses simples.

Mais le problème est quand je frappe sur la touche « backspace ». Le Gui affiche le texte incorrect, un caractère étrange qui représente le caractère de retour arrière, puis le texte correct.

Donc, si je tape ça ... (== la touche backspace)

abcdxxx<BS><BS><BS>efg 

l'interface utilisateur graphique affiche que.

Je veux qu'il afficher

abcdefg 

(remarquez les caractères XXX et les 3 caractères backspace et non affiché).

Des suggestions?

Répondre

0

Le contrôle clé de l'événement de presse si la clé est backspace ne stocke pas, au lieu de supprimer le dernier caractère.

+0

Je suis ébarassé c'était aussi simple que ça. :) Je ne stockais pas le caractère de retour arrière. Je n'ai jamais pensé à supprimer le dernier caractère de StringBuilder. C'est ce que la programmation à minuit vous fait * rougir * .. temps pour les beddies: P –

0

Essayez d'utiliser le lieu événement TextBox.TextChanged.

Questions connexes