Você está aqui: C# ::: Windows Forms ::: MaskedTextBox |
Como usar o evento MaskInputRejected da classe MaskedTextBox para informar o usuário sobre caracteres não aceitosQuantidade de visualizações: 8641 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#: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- 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: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- 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: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- 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: |
C# ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como zerar todos os valores dos elementos de um array de inteiros em C# usando o método Clear() da classe ArrayQuantidade de visualizações: 10806 vezes |
Nesta dica mostrarei como é possível usar o método estático Clear() da classe Array da linguagem C# para zerarmos todos os valores de um vetor de inteiros. Note que este método altera o array original. Veja o exemplo C# completo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- using System; namespace Estudos { class Program { static void Main(string[] args) { // cria e inicializa um array de inteiros int[] valores = {4, 69, 1, 0, 17, 23, 14}; Console.WriteLine("Com valores originais:"); // percorre todos os elementos originais for (int i = 0; i < valores.Length; i++) { Console.WriteLine(valores[i]); } // zera todos os elementos do array Array.Clear(valores, 0, valores.Length); Console.WriteLine("Valores zerados:"); for (int i = 0; i < valores.Length; i++) { Console.WriteLine(valores[i]); } Console.WriteLine("\n\nPressione qualquer tecla para sair..."); // pausa o programa Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: Com valores originais: 4 69 1 0 17 23 14 Valores zerados: 0 0 0 0 0 0 0 |
C# ::: Namespace System.Drawing ::: Graphics |
C# Windows Forms - Como passar um objeto da classe Graphics como argumento para um método e usá-lo para desenhar na superfície do formulárioQuantidade de visualizações: 5849 vezes |
Em algumas situações gostaríamos de escrever um método que recebe um objeto da classe Graphics como argumento e usar este objeto para alguma tarefa, por exemplo, desenhar na superfície do formulário. Nesta dica eu mostro como isso é possível. Comece escrevendo o seguinte método:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // um método que recebe um objeto da classe Graphics private void desenhar(ref Graphics g){ // vamos desenhar uma linha horizontal de 300 pixels na // cor preta e espessura de 1 pixel g.DrawLine(new Pen(Color.Black, 1), new Point(20, 80), new Point(320, 80)); // vamos liberar o objeto Graphics g.Dispose(); } Note que, na definição do parâmetro do método nós usamos a palavra-chave ref. Isso foi necessário porque queremos que o objeto Graphics seja passado por referência, uma vez que o estamos liberando dentro do corpo do método com uma chamada ao método Dispose(). Veja agora como obter o objeto Graphics relacionado ao formulário atual e passá-lo ao método desenhar(): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- private void button1_Click_1(object sender, EventArgs e){ // vamos obter o objeto Graphics relacionado ao formulário atual Graphics graphics = this.CreateGraphics(); // vamos passar o objeto Graphics para o método desenhar desenhar(ref graphics); } |
C# ::: Coleções (Collections) ::: List<T> |
Como inserir um novo elemento em uma posição N de uma List<T> do C# usando a função Insert()Quantidade de visualizações: 8956 vezes |
Em algumas situações gostaríamos de inserir um novo elemento em uma determinada posição de uma List<T>, ou seja, queremos ser capazes de inserir o novo elemento em qualquer posição, e não somente no final da lista. Para isso podemos usar o método Insert(). Veja sua assinatura:public void Insert( int index, T item ) ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- static void Main(string[] args){ // vamos criar um objeto da classe List<T> List<int> valores = new List<int>(); // vamos inserir quatro valores na lista valores.Add(5); valores.Add(2); valores.Add(6); valores.Add(9); // vamos usar o laço foreach para percorrer os elementos na lista Console.WriteLine("Elementos na lista:"); foreach(int v in valores){ Console.WriteLine(v); } // vamos inserir um novo elemento no índice 2 valores.Insert(2, 20); // vamos usar o laço foreach para percorrer os elementos na lista novamente Console.WriteLine("Elementos na lista:"); foreach(int v in valores){ Console.WriteLine(v); } // vamos pausar a execução Console.ReadKey(); } Ao executarmos este código teremos o seguinte resultado: Elementos na lista: 5 2 6 9 Elementos na lista: 5 2 20 6 9 Este método pode lançar uma exceção do tipo ArgumentOutOfRangeException se o índice fornecido for menor que 0 ou superior à quantidade de itens na lista. |
Desafios, Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |