MAURICIOJUNIOR.ORG

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