Você está aqui: C# ::: Dicas & Truques ::: Mouse e Teclado |
É possível cancelar o evento KeyPress baseado em um determinado caractere?Quantidade de visualizações: 8952 vezes |
Em algumas situações gostaríamos de cancelar o evento KeyPress baseado em um determinado caractere. Isso pode ser feito por meio da propriedade Handled da classe KeyPressEventArgs. Um objeto desta classe é fornecida ao tratador de evento KeyPress e tudo que precisamos fazer é fornecer o valor true à propriedade Handled. Veja:private void textBox1_KeyPress(object sender, KeyPressEventArgs e){ // se o usuário digitar 'a' nós cancelamos o evento KeyPress if(e.KeyChar == 'a'){ e.Handled = true; } } Aqui nós estamos "cancelando" a letra "a", ou seja, o usuário não será capaz de digitar este caractere na caixa de texto. É possível também usar a propriedade Handled com o valor true para cancelar uma faixa de caracteres. Veja: private void textBox1_KeyPress(object sender, KeyPressEventArgs e){ // vamos permitir apenas valores números de 0 à 9 this.Text = "Digite apenas os números de 0 a 9"; if(((int)e.KeyChar < 48) || ((int)e.KeyChar > 57)){ this.Text = "Caractere inválido"; e.Handled = true; } } Note que neste trecho de código nós obtemos o caractere digitado usando a propriedade KeyChar da classe KeyPressEventArgs e fizemos uma conversão explícita (cast) para um inteiro. Isso nos retornou o código ASCII do caractere digitado. Em seguida só tivemos que verificar se o código do caractere está na faixa 48 à 57, que é a faixa dos dígitos de 0 a 9. |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |