La Web del Programador: Comunidad de Programadores
 
    Pregunta:  6319 - MOVER EL CURSOR DE TECLADO EN UN CUADRO DE TEXTO
Autor:  Edgar Martínez
Gracias de antemano a todos.

Tengo un problemilla, quiero mover el cursos de teclado(o sea la rallita que marca el desplazamiento de letras),a una posicion determinada dentro de un cuadro de texto.

Por ejemplo que se muevo cinco letras a la derecha, que no este en el inicio.

  Respuesta:  Touring
No sé si cuando abres el fomrulario, el cuadro de texto contiene ya una cadena o está vacío.

Puedes escribir este código para ejecutarlo al activar registro

Private Sub Form_Current()
[nombre de TextBox].Value = " "
[nombre de TextBox].SetFocus
[nombre de TextBox].SelStart = 5
End Sub

Si el Textbox contiene algo al activar el registro puede saltarte la segunda línea

  Respuesta:  Jordi Moreno de Arcos
Pues no se, a mi se me ocurren dos cosas, muy similares.

1º Con el evento gotfocus haces que si el valor del campo es null pase a ser de 5 espacios; más o menos

sub campo_gotfocus()
if isnull(campo) then
campo.value=" "
endif
end sub

2º Si no quieres incluir espacios puedes incluir 'huecos' que es un codigo ASCII pero yo no me lo se.
Para incluir ASCII se usa la función Chr(codigo_ascii)

Si no quieres que te borren los espacios, no se como puedes hacerlo, lo que si que puedes es comprobar que una vez que se ha insertado el texto tenga 5 espacios al principio; algo asi como:

sub campo_beforeUpdate()
dim faltan as integer
for i from 1 to 5 do
if Mid(campo.value, i, 1) <> " " then
' esta función coge un caracter de la cadena cada vez
faltan=faltan+1
end if
next i

'ahora incluyes delante de la cadena tantos espacios como falten bien con otro bucle (for j from 1 to faltan) o con un case
case (faltan=1) campo.value=" " & campo.value
end sub

Nota: No copies el código, no esta bien escrito solo se parece, y poco.

Bueno, espero que te sirva.

Un Saludo