Usuário com melhor resposta
Problema com o evento KeyPress do form

Pergunta
-
Certo! Boa noite, galera!
Estou fazendo uma aplicação para fins didáticos utilizando um RFID Reader USB. Notei que ao aproximar um cartão do leitor, o Windows automaticamente detecta a resposta do leitor e transmite essa resposta para qualquer campo de texto que esteja selecionado como se algumas teclas do teclado estivessem sendo pressionadas. Tendo isso em mente, tentei utilizar o evento KeyPress do form para obter estes dados e coloca-los em um textbox com a propriedade "enable" como false. Além disso, alterei a propriedade KeyPreview do form para true. Funcionou perfeitamente! O problema é quando adiciono algum controle, como um botão, com a propriedade enable como true.
O evento KeyPress do form está assim:
private void Form1_KeyPress(object sender, KeyPressEventArgs e) { if (textBox1.TextLength >= 11) textBox1.Text = ""; textBox1.Text += e.KeyChar.ToString(); }
O que acontece é quando um controle qualquer está com a propriedade enable igual a true, o tamanho da string no textbox fica variando entre 0 e 12. Na primeira vez, ele pega o código perfeitamente, mas me retorna um Length igual a 10, sendo que na verdade deveriam ser 11. Percebi também que um ou mais caracteres retornam como caracter especial. Portanto, na maioria das vezes ele não me retorna o código correto. Só retorna quando a propriedade enable dos controles estão como false.Se alguém souber uma solução para isso e o motivo pra isto, por favor, me explique!!!! Ou também se tiverem outra sugestão...
Desde já, obrigado!!
- Editado Lucas CS segunda-feira, 7 de agosto de 2017 00:11
Respostas
-
Bom dia,
Por falta de retorno, essa thread está encerrada.
Se necessário, favor abrir uma nova thread.
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 21 de agosto de 2017 13:13
Todas as Respostas
-
Boa tarde, Lucas CS.
Tudo bem?
Obrigado por usar o fórum MSDN.
Essa seria uma questão de "How to/Customização" ou "Break Fix/Erro"?
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
-
Boa tarde, Lucas CS.
Ele te mostra alguma mensagem de erro, ou algo do gênero?
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
-
Boa tarde, Lucas CS. Tudo bem?
Você conseguiu algum avanço no teu caso? Como está a situação, por favor nos diga para que possa ser ajudado.
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Bom dia,
Por falta de retorno, essa thread está encerrada.
Se necessário, favor abrir uma nova thread.
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 21 de agosto de 2017 13:13