• 0
Sign in to follow this  
Halfar

Posicionar Cursor...

Question

Bem pessoal,

Tenho uma caixa de texto onde é armazenado o cep. Utilizei o controle NumberBox e estava funcionando. Mas sei lá porque, após ter testado alguns ceps e estar tudo ok, ao levar o soft para a empresa concratante do serviço, o usuário ao digitar um cep, quando o cursor sai do campo e vai para outro campo, o controle numberbox simplesmente altera o valor do cep para um outro numero qualquer. Não sei porque ocorreu isto. Achei totalmente estranho, porque ele altera somente para um determinado cep, outros ceps que foram digitados tudo ocorreu normalmente, não deu erro nehum.

Pois bem, como já estou de saco cheio destes controles, porque antes utilizei o MaskEdit para formatar outros campos e deu problemas tambem, então resolvi escrever um codigo simples para formatar o cep, pois trata-se apenas de colocar um traço no meio do cep.

então fiz o seguinte:

Private Sub TextCep_Change(Index As Integer)
If Len(TextCep(0).Text) = 5 Then TextCep(0).Text = TextCep(0).Text & "-"
End Sub

O codigo acima faz com que toda vez que o usuario digitar algo no campo cep, ele verifica o tamanho da string, se for igual a 5 então o programa acrescenta o traço. Só que aí o cursor é posicionado no primeiro numero do cep, dificultando ainda mais o trabalho do usuário.

Eu preciso de um comando que posicione o cursor no final do cep....

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Dim Tecla As Integer 'Variável global!

Private Sub TextCep_Change()

If Tecla = 8 Then Exit Sub

If Len(TextCep.Text) = 5 Then
TextCep.Text = TextCep.Text & "-"
TextCep.SelStart = 6
End If
End Sub

Private Sub TextCep_KeyPress(KeyAscii As Integer)
Tecla = KeyAscii
End Sub

Explicando: Faz a verificação da tecla: se a tecla for 8 (backspace) então ele ignora o trecho de código do procedimento 'Change'. Por que ignora? Fiz para o usuário poder deletar o que escreveu, pois se ele pressionar 'backspace' e tiver 5 caractéres ele irá apagar o '-' (o sexto caractére, assim ficando 5 caractéres) e colocar o '-' novamente.

A propriedade 'SelStart' move o cursor para a posição indicada.

Qualquer coisa estamos ai! falows!

P.S: Toda vez que você fizer validações por conta própria, use o evento KeyPress da TextBox. Tudo isso que fiz dava para fazer no evento KeyPress e sem usar uma variável global, certo?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this