• Entrar
  • Esqueceu a senha
  • Quem somos
  • Fale conosco


Pesquisar: (digite que clique enter)
 

Mauricio Junior


MaskedTextBox da direita para esquerda

por Mauricio Junior em 1/1/2011 1


        Olá pessoal, gostaria de postar hoje um artigo falando de uma dúvida recebida por email de um amigo de São Paulo. Ele gostaria de colocar o maskedTextBox digitando da direita para esquerda, pois a máscara é do tipo valor e ele gostaria de digitar começando dos centavos.

Referência:
Ferramenta de desenvolvimento Visual Studio .NET 2008
Linguagem: C#
Plataforma: Windows Form

    Dessa forma, criei um formulário do tipo Windows Forms e comecei a verificar as propriedades. Ta certo que com o TextBox ele funciona alterando uma propriedade, mas com o masked não funciona.

    Para resolver o problema tive que programar um pouco no código C# e tudo funcionou.

Código:

Imagem 1

    Na imagem 1, existem dois campos com o maskedTextBox. O primeiro começa da esquerda para direita e o segundo da direita para esquerda. Basta colocar a propriedade RightToLeft = YES. Mesmo com a propriedade atribuída, o curso sempre começa da esquerda para direita.

    Olhando nas propriedades do masked, não existe mesmo uma maneira para começar da direita para esquerda.

Propriedade atribuída da máscara.


Imagem 2

    Nos eventos, precisei clicar no KeyPress do maskedTextBox e adicionar algumas linhas de códigos. (Imagem 3)


Imagem 3

        Segue o código colocado. (Code 1.1)


private void maskedTextBox2_KeyPress(object sender, KeyPressEventArgs e)
        {
            string buff = "";
            int i;
            if (maskedTextBox2.MaskCompleted)
            {
                e.Handled = true;
                return;
            }

            char[] chars = maskedTextBox2.Text.PadLeft(5, ' ').ToCharArray();
           
            for (i = 0; i < chars.Length - 1; i++)
                chars[i] = chars[i + 1];
           
            chars[i] = e.KeyChar;

            for (i = 0; i < chars.Length; i++)
                buff += chars[i];

            maskedTextBox2.Text = buff;
        }


Code 1.1

    Depois disso, o texto começou da direita para a esquerda. Espero ter ajudado e qualquer dúvida, pode entrar em contato pelo site obrigado.


Imagem final.
voltar   comente  subir

 
Mauricio Junior Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog: blog.mauriciojunior.org, Site pessoal www.mauriciojunior.org