Visual Basic - pasar cursor con intro

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

pasar cursor con intro

Publicado por niwdeloko (53 intervenciones) el 01/10/2007 17:01:25
hola a todos alguien me puede secir si existe una forma para pasar el cursor de un objetoa otro con solo presionar intro... sin necesidad de hacer codigo en cada caja de texto o objeto como este:
If KeyAscii = vbKeyReturn Then
KeyAscii = 0
SendKeys "{TAB}"
End If

sin alguien conoce una forma de hacerlo con una sola funcion porfavor me ayude..
saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:pasar cursor con intro

Publicado por Semper (4 intervenciones) el 01/10/2007 18:27:18
Al formulario ponle en True o Verdadero la propiedad KeyPreview ...
Y en el codigo usas el evento KeyPress del formulario para validar el Intro ...
.;;

Private Sub Form_KeyPress(KeyAscii As Integer)
Dim oControl As Control

If KeyAscii = vbKeyReturn Then
Set oControl = Me.ActiveControl
If TypeOf oControl Is TextBox Then
SendKeys "{Tab}"
End If
End If
End Sub

''''

Saludos ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pasar cursor con intro

Publicado por Moises (12 intervenciones) el 01/10/2007 19:27:20
Hola:
Yo lo hago asi:

' evento KeyPress

If KeyAscii=13 then
Text1(index+1).setfocus
keyAscii=0
end if
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pasar cursor con intro

Publicado por ivan (1039 intervenciones) el 01/10/2007 19:43:53
Y si estás en el UBound del Text1, es decir, en el último elemento de la matriz del control... ¿no te dá error?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:pasar cursor con intro

Publicado por niwdeloko (53 intervenciones) el 01/10/2007 21:34:02
hola semper prove lo que me dijiste funciona pero para el tab, pero para el intro solo da cuando esta el cursor estatico en un textbox.. si pudiera ser para despues de termianr de digitar cualquier dato ya sea en text, dtpicker, o combo dalrle intro y pasar al proximo control....
gracias por tu ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No cheques el tipo de objeto, solo envia SendKeys

Publicado por Semper (4 intervenciones) el 01/10/2007 21:57:04
Entonces no preguntes si el control actual es un TextBox ...
Simplemente valida si la tecla es INTRO y lanzas el TAB para pasar al siguiente control ...

Como el KeyAscii no se esta forzando a cero en ningun momento, el control actual recibe dicha tecla INTRO y posteriormente la tecla TAB que se le envia con el SendKeys . ..

Si el control actual es un TextBox o algun otro control que no realiza nada especial con la tecla INTRO, esta se ignora y procesa la siguiente tecla (TAB) ...

Si por el contrario, el control actual procesa efectivamente la tecla INTRO (tal como un CommandButton), entonces al recibir dicha tecla INTRO se lanza su evento correspondiente ( evento _CLICK en el caso del CommandButton )

El codigo quedaria asi.. Recuerda poner en True o Verdadero la propiedad KeyPreview del formulario para que funcione ...
''''

Private Sub Form_KeyPress(KeyAscii As Integer)

If KeyAscii = vbKeyReturn Then
SendKeys "{Tab}"
End If

End Sub

''''''''''
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No cheques el tipo de objeto, solo envia SendKe

Publicado por Semper (4 intervenciones) el 01/10/2007 22:06:07
ah! y olvidé decirte que la propiedad TabIndex de cada control debe ir correlativa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:No cheques el tipo de objeto, solo envia SendKe

Publicado por niwdeloko (53 intervenciones) el 01/10/2007 22:16:34
gracias man funciona al pelo.
perdon por ser tan lol jajajaj otra cosita y para pintar el objeto cada vez que doy intro al pasar a otro objeto pintar el foco man como seria.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Usa Timer/Dibuja bordes/Cambia el Backcolor

Publicado por Semper (4 intervenciones) el 02/10/2007 00:04:14
El control se pinta solo al recibir el foco....

Pero si quieres ponerle un marco o cambiar el color de fondo cuando reciba el foco, y no quieres hacerlo en el evento _GOTFOCUS de cada control, entonces puedes usar algo como esto...

En tu formulario, aparte de los controles que tengas, agrega un Timer (Timer1) ...

Ojo:

Algunos controles como el CommandButton no reflejan el color de fondo que le pongas a menos que les cambies su estilo a Grafico....

Si los controles los agrupas dentro de un Frame (como los OptionButton por ejemplo), el Frame no admite el metodo .Line por lo que no aparecera el marco dibujado alrededor de dichos controles ...

''''''

Private Sub Form_Load()
Me.Timer1.Interval = 100
Me.Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
Static nX As Single, nY As Single, nX2 As Single, nY2 As Single
Static sName As String, sIndex As String
Static oContainer As Control
Static oControl As Control, nColor As Long

Dim sNewName As String, sNewIndex As String

If Me.ActiveControl Is Nothing Then Exit Sub

sNewName = Me.ActiveControl.Name

On Error Resume Next
sNewIndex = Me.ActiveControl.Index
On Error GoTo 0

If sNewName = sName And sNewIndex = sIndex Then
Exit Sub
End If

Me.DrawMode = vbCopyPen
Me.DrawWidth = 2

If Trim(sName) <> "" Then
If oContainer Is Nothing Then
Me.Line (nX, nY)-(nX2, nY2), Me.BackColor, B
Else
On Error Resume Next
oContainer.Line (nX, nY)-(nX2, nY2), oContainer.BackColor, B
On Error GoTo 0
End If
oControl.BackColor = nColor
End If

Set oControl = Me.ActiveControl
nColor = oControl.BackColor
sName = sNewName
sIndex = sNewIndex
nX = oControl.Left
nY = oControl.Top
nX2 = oControl.Left + oControl.Width
nY2 = oControl.Top + oControl.Height

If oControl.Container.Name = Me.Name Then
Set oContainer = Nothing
Else
Set oContainer = Me.Controls(oControl.Container.Name)
End If


If oContainer Is Nothing Then
Me.Line (nX, nY)-(nX2, nY2), vbRed, B
Else
On Error Resume Next
oContainer.Line (nX, nY)-(nX2, nY2), vbRed, B
On Error GoTo 0
End If

oControl.BackColor = vbYellow

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pasar cursor con intro

Publicado por Moises (12 intervenciones) el 01/10/2007 22:14:13
Hola de nuevo amigos

En el ultimo indice te dara error
pero en la primera lina...

If index = maximo then
text1(0).setfocus
exit sub
end if
y a continuacion el otro codigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:pasar cursor con intro

Publicado por niwdeloko (53 intervenciones) el 01/10/2007 22:22:45
moises ponele ojo..... es para aplicalo a cualqueir objeto no presisamente a un textbox... de la forma que dice semper..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pasar cursor con intro

Publicado por Moises (12 intervenciones) el 01/10/2007 22:29:56
Igualmente textbo, combos,cheqs, mshflexgrid, datagrid para todo lo utilizo como te explicado, "PUEDES COJER OTRO CAMINO SI LA DICHA ES BUENA" Je Je
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:pasar cursor con intro

Publicado por niwdeloko (53 intervenciones) el 01/10/2007 22:42:44
para pintar el objeto cuando tiene el foco como hago tons.
saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pasar cursor con intro

Publicado por Moises (12 intervenciones) el 01/10/2007 22:50:29
Ok entiendo adeu.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Me parece que no te enteras de nada, Moises

Publicado por yo (4 intervenciones) el 02/10/2007 06:49:07
adeu
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar