none
Problema em masktextbox RRS feed

  • Pergunta

  • Olá

    Eu tenho um masktextbox.
    O prob. é o seguinte, eu gostaria que mesmo quando eu clicasse no meio dela, o meu curso posse para a direita ou esquerda, pois as vezes distraido eu clico no meio e começo a digitar, ai dá tudo errado, ñ gostaria de deixar o usuário clicar onde ele quer nele. E mesmo quando estiver digitando q não seja possivel clicar no meio, a única forma de alterar oque digitou é apagando.
    terça-feira, 26 de janeiro de 2010 00:01

Todas as Respostas

  • Olá!
    Eu uso o seguinte código e funciona bem comigo.
        private void maskedTextBox1_Click(object sender, EventArgs e)
        {
          maskedTextBox1.Select(0, 0);
        }

    Daniel Henrique http://danielcordeiro.eti.br
    terça-feira, 26 de janeiro de 2010 01:14
  • é até funcionou, mas desse jeito qndo o usuario clica, o cursor volta para o inicio, ai se ele continuar digitando começa inserir números no início, ai já vira bagunça.
    Não tem como sempre jogar o cursor após o ultimo numero ?
    terça-feira, 26 de janeiro de 2010 21:58
  • No método Select, o primeiro parametro é onde começa a seleção e o segundo é o tamanho.


    Tenta isso:
    MaskEdit1.Select(MaskEdit1.Text.Length,0);

    Att ...
    terça-feira, 26 de janeiro de 2010 22:07
  • ficou perfeito !!!
    Obrigado !!
    • Marcado como Resposta Henrique Alonso terça-feira, 26 de janeiro de 2010 23:22
    • Não Marcado como Resposta Henrique Alonso quarta-feira, 27 de janeiro de 2010 01:55
    terça-feira, 26 de janeiro de 2010 23:22
  • ah uma coisa q eu ñ consigo

    eu tenho um formato q é assim: 0.26.0834
    ai para fazer a máscara eu fiz assim: 0,00,0000
    ah aparece do jeito que eu queria _.__.____
    porem está errado pois o Ponto na máscara significa decimal, então como eu faço para colocar um ponto q ñ é decimal, é só um ponto para aparecer lá, pois é a separação de um código
    quarta-feira, 27 de janeiro de 2010 01:55
  • ñ consigo colocar ponto
    quarta-feira, 27 de janeiro de 2010 13:47
  • Henrique

    Na mascara coloca 999\.999\.999\.99, ou seja o \ antes do .

    Henrique Tambalo
    quarta-feira, 27 de janeiro de 2010 13:50
  • entendi

    porem eu fiz uma mascara assim: 0\.0000\.0000\.0
    o cursor inicia na poisção correta, porem se eu clicar nela o cursor pula para a ultima posição e ñ sai + dela
    quarta-feira, 27 de janeiro de 2010 17:41
  • como posso arrumar isso ?
    sexta-feira, 29 de janeiro de 2010 01:55
  • como posso arrumar isso ?

    Podes colocar o código que tens no evento Click ? Para ser mais fácil perceber o que esta a acontecer
    sexta-feira, 29 de janeiro de 2010 09:56
  • private void mtb_RA_Click(object sender, EventArgs e)
    {
        mtb_RA.Select(mtb_RA.Text.Length, 0);
    }

    um exemplo de RA: 0.2607.5432.1
    mtb_RA é um maskTextBox

    minha máscara ficou assim: 0\.0000\.0000\.0
    no MaskTextBox aparece assim: _.____.____._

    Quando eu vou digitando vai da esquerda p\ a direita. Porem se eu estiver digitando e clico nele o cursor vai para a ultima posição e não sai mais dela
    sexta-feira, 29 de janeiro de 2010 16:07
  • Antes de mudar para a ultima posição do textbox, verifique se a mascara está vazia.

    Abraço.

    Ronney
    sexta-feira, 29 de janeiro de 2010 16:51
  • Henrique,

    Olha esse código

        public partial class Form1 : Form
        {
            public delegate void Inicio(MaskedTextBox maskedTextBox);
    
            public Form1()
            {
                InitializeComponent();
            }
    
            public void txtStartPosition(MaskedTextBox maskedTextBox)
            {
                maskedTextBox.SelectionStart = 0;
            }
    
            private void maskedTextBox1_Enter(object sender, EventArgs e)
            {
                BeginInvoke(new Inicio(txtStartPosition), new MaskedTextBox[] { this.maskedTextBox1 });
            }
        }

    Você pode fazer também o seguinte

            private void maskedTextBox1_Click(object sender, EventArgs e)
            {
                this.maskedTextBox1.SelectionStart = 0;
            }
    Mas dessa última maneira você vai ver o cursor indo da direita para a esquerda.
    Henrique Tambalo
    sexta-feira, 29 de janeiro de 2010 17:02
  • eu testei aqui, porem eu ñ posso voltar c\ o cursor no inicio quando eu clico nela, pois ai o usuário começa a digitar coisas no inicio ai bagunça tudo, sempre q eu clicar eu tenho q voltar p\ o último caractere digitado

    como fazer isso ?

    sábado, 30 de janeiro de 2010 01:06
  • Henrique,

    Veja como fica assim...

        public partial class Form1 : Form
        {
            public delegate void Inicio(MaskedTextBox maskedTextBox, int posicao);
    
            public Form1()
            {
                InitializeComponent();
            }
    
            private void txtStartPosition(MaskedTextBox maskedTextBox, int posicao)
            {
                maskedTextBox.SelectionStart = posicao;
            }
    
            private void maskedTextBox1_Click(object sender, EventArgs e)
            {
                int y = this.maskedTextBox1.SelectionStart;
                int x = this.maskedTextBox1.Text.Length;
                BeginInvoke(new Inicio(txtStartPosition), this.maskedTextBox1, x);
            }
        }

    Se no evento click vc substituir X por Y ele vai colocar o cursor na posição que o usuário clicou.
    Henrique Tambalo
    sábado, 30 de janeiro de 2010 04:33
  • Ainda está dando o msm problema, quando eu clico nela o curso pula na ultima posição e ñ sai + dela
    sábado, 30 de janeiro de 2010 15:16
  • Henrique, testei aqui com esse código está funcionando corretamente sim!

    Por favor, passe o seu código para eu ver...

    Henrique Tambalo
    sábado, 30 de janeiro de 2010 18:06
  •         public delegate void Inicio(MaskedTextBox maskedTextBox, int posicao);
           
            private void txtStartPosition(MaskedTextBox maskedTextBox, int posicao)
            {
                maskedTextBox.SelectionStart = posicao;
            }


            #region Clique do MaskedTextBox
            private void mtb_RA_Click(object sender, EventArgs e)
            {
                int y = this.mtb_RA.SelectionStart;
                int x = this.mtb_RA.Text.Length;
                BeginInvoke(new Inicio(txtStartPosition), this.mtb_RA, x);

                //mtb_RA.Select(mtb_RA.Text.Length, 0);
            }
            #endregion
    domingo, 31 de janeiro de 2010 00:15
  • Henrique...

    Nessa linha... BeginInvoke(new Inicio(txtStartPosition), this.mtb_RA, x); troque x por y, fica assim

    BeginInvoke(new Inicio(txtStartPosition), this.mtb_RA, y);

    Henrique Tambalo
    domingo, 31 de janeiro de 2010 22:04
  • dessa vez não está pulando a posição, porem é possivel digitar onde eu clicar, e isso ñ pd, o cursor tem que ficar sempre atras da ultima letra que foi digitada, se clicar em outro lugar do MaskedTextBox, o cursor deve voltar atras da ultima letra que foi digitada
    sexta-feira, 5 de fevereiro de 2010 01:54
  • já tentei de tudo aqui e ñ dá certo de forma alguma
    sexta-feira, 19 de fevereiro de 2010 20:40
  • Henrique,

    Alguma novidade quanto a essa sua dúvida?


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    sexta-feira, 23 de julho de 2010 22:05
    Moderador
  • então, ñ consegui nd

    ficou daquele jeito, só inicia no começo

    ñ era como eu qria, mas fazer oq né !

    sábado, 24 de julho de 2010 16:42
  • Henrique, pode postar pra gente qual o estágio até onde você conseguiu e o que está faltando pra resolver por completo?

    Poste também o código que você está utilizando, por favor.


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    sábado, 24 de julho de 2010 17:27
    Moderador