Udocs.me

Autor: Mauricio Junior
Publicado em: 1/1/2011 12:00:00 AM

MaskedTextBox da direita para esquerda

        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.

Udocs.me