CRIANDO MASCARA PARA CPF

USUARIO.EXCLUIDOS 14/01/2005 18:05:42
#60814
Dae pessoal
Como o meu controle MaskEdbox está dando pau eu resolvi criar um código que fizesse o trabalho desse comando, mas eu estou tendo um problema: o cursor sempre volta no início do text depois que o algoritmo põe o ponto e/ou hífem. Alguém poderia me ajudar como consertar esse problema, baseando-se nesse exemplo que eu fiz?
Abaixo vai o código criado por mim

 Private Sub text1_change()
Dim x as integer
x = Len(text1.text)
if x = 3 then text1.text + "."
if x=7 then text1.text + "."
if x=11 then text1.text + "-"
if x>14 then Msgbox"Formato inválido de CPF": text1.text = " "


Os pontos e o hífem sempre aparecem mas, sempre que eu vou continuar a digitação, o cursor volta no começo do text. Tenho que usar um comando a mais para fazer com que ele fique no final do text mas, não sei que propriedade (ou o que quer que seja) usar.

Desde já, agradeço as ajudas eventualmente postadas

Valeu
USUARIO.EXCLUIDOS 14/01/2005 18:23:23
#60822
Resposta escolhida
Pode ser assim, ai depois de digitar o CPF completo! Não deixa digitar mais nada

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 8 Or KeyCode = 191 Then Exit Sub: KeyCode = 0
If Len(Text1) = 2 Then
SendKeys Chr(46)
ElseIf Len(Text1) = 6 Then
SendKeys Chr(46)
ElseIf Len(Text1) = 10 Then
SendKeys Chr(45)
ElseIf Len(Text1) > 13 Then
SendKeys "{bs}"
End If
End Sub
USUARIO.EXCLUIDOS 14/01/2005 18:25:38
#60825
lembre-se de colocar no form, o KEYPREVIEW para TRUE...antes de usar a rotina
USUARIO.EXCLUIDOS 14/01/2005 18:30:14
#60828
Viu? Testou?
USUARIO.EXCLUIDOS 14/01/2005 19:08:33
#60841
Valeu Germanir
Obrigado
O teu exemplo funciona perfeitamente, só os valores que você colocou dentro dos IF's, para que ficasse no formato xxx.xxx.xxx-xx deveriam ser 3, 7 e 11 respectivamente mas, sem problemas, isso eu mesmo arrumo.
OBS: o evento que você colocou também estava trocado. Deveria ser text1_change()

Valeu

Obrigado pelo auxílio [S99]
USUARIO.EXCLUIDOS 14/01/2005 19:11:22
#60842
ééé, com certeza, fazendo as modificações ficou melhor, lembre-se que o vb é instavel, pois no meu funcionou 2 6 10 e 13.. mas tudo bem, por favor encerre o tópico.. rsr
Tópico encerrado , respostas não são mais permitidas