Não tenho certeza de como obter a saída 'final' de um evento Winform KeyPress
Pergunta
Eu tenho um Winform simples. Nele possui um único controle da caixa de texto. Nisso, eu conectei o evento KeyPress. Por quê? Estou tentando capturar tudo o que o usuário tipos nessa caixa de texto. Mas, quando eles acertarem o retorno ou a entrada, pego tudo o que digitaram e o envio para um analisador de comando para fazer coisas.
Em seguida, eu exibo na tela (em uma caixa de RichText), o que eles digitaram, para que eles saibam que o comando está prestes a ser processado.
Coisas simples.
Mas o problema é quando eu pressiono a tecla 'Backspace'. A GUI exibe o texto incorreto, um personagem estranho que representa o caractere do backspace e depois o texto correto.
Então, se eu digitar isso ... (== a chave do backspace)
abcdxxx<BS><BS><BS>efg
A GUI mostra isso.
Eu quero exibir
abcdefg
(Observe os caracteres xxx e os 3 chars backspace e não exibidos).
Alguma sugestão?
Solução
No evento, verifique se a tecla é o backspace não o armazenar, em vez disso, exclua o último caractere.
Outras dicas
Tente usar o TextBox.TextChanged
Evento em vez disso.