Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

¿Cómo ubicarse automáticamente en el primer dato de un flexgrid?

Estas en el tema de ¿Cómo ubicarse automáticamente en el primer dato de un flexgrid? en el foro de Visual Basic clásico en Foros del Web. Buenas!!! ¿Existe alguna propiedad como la de "ListIndex" de un list box en el flex grid para que se ubique después de una actualización de ...
  #1 (permalink)  
Antiguo 18/05/2011, 11:56
 
Fecha de Ingreso: noviembre-2010
Mensajes: 175
Antigüedad: 13 años, 5 meses
Puntos: 1
¿Cómo ubicarse automáticamente en el primer dato de un flexgrid?

Buenas!!! ¿Existe alguna propiedad como la de "ListIndex" de un list box en el flex grid para que se ubique después de una actualización de un registro, en el primer dato del Fgrid?

Saludos!!!
  #2 (permalink)  
Antiguo 18/05/2011, 16:32
 
Fecha de Ingreso: noviembre-2010
Mensajes: 175
Antigüedad: 13 años, 5 meses
Puntos: 1
Buenas!!! ¿Existe alguna propiedad como la de "ListIndex" de un list box en el flex grid para que se ubique después de una actualización de un registro, en el primer dato del Fgrid?

Saludos!!!

Edit: Perdón, quise editar el de arriba y envié en respuesta.

Última edición por t0n1; 18/05/2011 a las 19:29
  #3 (permalink)  
Antiguo 19/05/2011, 17:52
 
Fecha de Ingreso: noviembre-2010
Mensajes: 175
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: ¿Cómo ubicarse automáticamente en el primer dato de un flexgrid?

Bueno, la única manera que me tome la propiedad SetFocus del msflexgrid es poniendo el código fuera del form. O sea, nada más pude aplicarla cuando actualizo los registros.

Si alguien sabe como hacer para que cuando se ejecute el formulario, se ponga el foco en la la primera fila de la columna del flexgrid, se agradece.

Saludos!!!
  #4 (permalink)  
Antiguo 20/05/2011, 09:55
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: ¿Cómo ubicarse automáticamente en el primer dato de un flexgrid?

Hola!!
Creo que te funcionaria SENDKEYS "{HOME}" despues del proceso de actualizar.
  #5 (permalink)  
Antiguo 20/05/2011, 12:19
 
Fecha de Ingreso: noviembre-2010
Mensajes: 175
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: ¿Cómo ubicarse automáticamente en el primer dato de un flexgrid?

Cita:
Iniciado por lokoman Ver Mensaje
Hola!!
Creo que te funcionaria SENDKEYS "{HOME}" despues del proceso de actualizar.

Claro. Después de actualizar me funciona. El problema es que yo quiero que aparezca el foco ni bien cargo el form de inicio.
  #6 (permalink)  
Antiguo 20/05/2011, 12:33
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: ¿Cómo ubicarse automáticamente en el primer dato de un flexgrid?

No entendi bien, pero si quieres que al cargar tu FROM el grid tenga el foco, pues asignale el TABINDEX=0
  #7 (permalink)  
Antiguo 20/05/2011, 12:53
 
Fecha de Ingreso: noviembre-2010
Mensajes: 175
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: ¿Cómo ubicarse automáticamente en el primer dato de un flexgrid?

Cita:
Iniciado por lokoman Ver Mensaje
No entendi bien, pero si quieres que al cargar tu FROM el grid tenga el foco, pues asignale el TABINDEX=0

Mejor pongo el código:

Código:
Sub cargar2()

If Not Conectar Then Exit Sub
sql = "Select * from Informes order by Codigo asc"
Set Rs = Cn.Execute(sql)
lin = 0

If Not Rs.EOF Then
    grdInf.Clear
    Do While Not Rs.EOF
    With grdInf
    .Cols = 1
    .ColAlignment(0) = 4
    .TextMatrix(0, 0) = "Código del Interesado"
    .ColWidth(0) = 4000
    lin = lin + 1
    .AddItem ""
    .TextMatrix(lin, 0) = Rs!Codigo
    Rs.MoveNext
    End With
    Loop
    grdInf.Col = 0
    grdInf.Row = 1
    grdInf.SetFocus
Else
    cargar3
End If

End Sub

Con esa sub, actualizo el registro en el grid y le indico el foco.

El problema es que la primer celda del grid se me pinta de rojo pero no se me pone en el foco.

Después no sé como hacer para que poner el foco a penas se carga el formulario porque pongo el tabindex del grid en cero pero no se donde en donde poner "grdInf.Setfocus" para darle la instrucción.
  #8 (permalink)  
Antiguo 20/05/2011, 13:09
 
Fecha de Ingreso: noviembre-2010
Mensajes: 175
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: ¿Cómo ubicarse automáticamente en el primer dato de un flexgrid?

Listo, tenías razón. Abajo del setfocus tenía que poner SENDKEYS "{HOME}" o "{UP}"...

Una pregunta, una vez que hago el alta en el grid me quedan después del último registro muchas filas vacías ¿por qué es eso?
  #9 (permalink)  
Antiguo 20/05/2011, 19:24
 
Fecha de Ingreso: noviembre-2010
Mensajes: 175
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: ¿Cómo ubicarse automáticamente en el primer dato de un flexgrid?

Cita:
Iniciado por t0n1 Ver Mensaje
Listo, tenías razón. Abajo del setfocus tenía que poner SENDKEYS "{HOME}" o "{UP}"...

Una pregunta, una vez que hago el alta en el grid me quedan después del último registro muchas filas vacías ¿por qué es eso?

Solucionado lo de las filas vacías.

Sumo la variable de la última matríz que indica las filas para que me dé como resultado la fila siguiente:
Código:
lin = 0 

linB = lin + 1
y después hago un additem "" del grid para que me agregue una nueva fila para

el registro siguiente:

Código:
grdInf.AddItem ""

grdInf.TextMatrix(linB, 0) = ""

Ahora lo que me faltaría es la cuestión del tabindex en cero del grid para que arranque en foco cuando se inicia el formulario ¿tengo que colocar la propiedad setfocus del grid en algún lugar además de poner en cero el tabindex?
  #10 (permalink)  
Antiguo 23/05/2011, 06:53
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: ¿Cómo ubicarse automáticamente en el primer dato de un flexgrid?

En las propiedades del GRID pones el TABINDEX=0. No es necesario poner el SETFOCUS.

Etiquetas: dato, primer
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:41.