Você está aqui: C# ::: Windows Forms ::: MaskedTextBox

Como usar o evento MaskInputRejected da classe MaskedTextBox para informar o usuário sobre caracteres não aceitos

Quantidade de visualizações: 8760 vezes
O evento MaskInputRejected da classe MaskedTextBox é disparado sempre que o usuário digita caracteres inválidos para a máscara de entrada. Ou seja, se o valor da propriedade Mask for "00/00/0000", então apenas os dígitos de 0 a 9 serão permitidos. Desta forma, sempre que tentamos digitar caracteres que não se enquadram nesta faixa, o evento MaskInputRejected é disparado.

Veja um trecho de código mostrando como este evento pode ser usado em suas aplicações C#:

private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e){
  MessageBox.Show("Apenas dígitos de 0 a 9 são aceitos neste campo");
}

Note que o evento MaskInputRejected também é disparado (no .NET 3.0) quando a quantidade de caracteres permitidos excede o comprimento da máscara. Assim, é sempre uma boa ídeia emitir um aviso relacionado a isso também.

O tratator de evento MaskInputRejected recebe um objeto da classe MaskInputRejectedEventArgs (que herda de System.EventArgs). Esta classe possui as seguintes propriedades:

a) Position - Obtém a posição na máscara que corresponde ao caractere inválido que o usuário está tentando inserir.

b) RejectionHint - Obtém um valor de enumeração que descreve o motivo pelo qual o caractere de entrada foi rejeitado.

Veja um trecho de código que mostra como obter a posição na máscara correspondente ao caractere inválido:

private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e){
   MessageBox.Show("Apenas dígitos de 0 a 9 são aceitos neste campo.\n\n" +
     "Você está tentando inserir um caractere inválido na posição: " +
     e.Position);
}

Lembre-se de que Position retorna a primeira posição como 0. Em aplicações do mundo real é recomendável informar ao usuário a primeira posição como sendo 1, ou seja, basta incrementar o valor de Position antes de exibir a mensagem de erro.

Veja agora um exemplo do uso da propriedade RejectionHint:

private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e){
   MessageBox.Show("Apenas dígitos de 0 a 9 são aceitos neste campo.\n\n" +
     "Erro: " + e.RejectionHint);
}

O valor retornado pela propriedade RejectionHint é um dos valores disponíveis na enumeração MaskedTextResultHint. É claro que tais valores são úteis apenas para depuração da aplicação (debugging), uma vez que as strings estão em inglês. Os valores da enumeração são: Unknown, CharacterEscaped, NoEffect, SideEffect, Success, AsciiCharacterExpected, AlphanumericCharacterExpected, DigitExpected, LetterExpected, SignedDigitExpected, InvalidInput, PromptCharNotAllowed, UnavailableEditPosition, NonEditPosition e PositionOutOfRange.

Link para compartilhar na Internet ou com seus amigos:

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

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 32 usuários muito felizes estudando em nosso site.