• Viernes 29 de Marzo de 2024, 15:24

Autor Tema:  Foco loco con DataGrid  (Leído 2544 veces)

9tnix

  • Miembro MUY activo
  • ***
  • Mensajes: 165
  • Nacionalidad: pe
    • Ver Perfil
Foco loco con DataGrid
« en: Jueves 4 de Noviembre de 2010, 17:07 »
0
Hola a todos

Me sucede algo extraño, tengo una caja de texto y un datagrid (txtDato, dg) en el cual busco y el resultado lo muestro en el datagrid y cuando paso el foco de la caja de texto al datagrid supuestamente el foco deberia estar en el datagrid, pero este se mueve solo de nuevo al textbox. Les ha pasado esto alguna vez?, esto me trae loco.

Cabe mencionar que solo estos 2 controles uso en un form

Salu2
Zeekel
TP-Systems
our knowledge is our power!

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Foco loco con DataGrid
« Respuesta #1 en: Viernes 5 de Noviembre de 2010, 21:31 »
0
El foco sólo se puede pasar si el control está activo y visible. Si la propiedad enabled es false, es normal que no pueda recibir el foco.
Además el datagrid tiene varias propiedades relacionadas con la tabulación que afectan al foco, estudia como se relacionan entre si.

Por ejemplo si la propiedad Tabstop del datagrid es false, cuando le envíes el foco al datagrid desde el textbox, el datagrid recibe el foco e inmediatamente lo pierde...

Puedes comprobarlo, crea un nuevo proyecto, añade un textbox y un datagrid, pon este código ejecuta el proyecto y escribe en el textbox:
Código: Visual Basic
  1.  
  2. Private Sub Form_Load()
  3.     DataGrid1.TabStop = False
  4. End Sub
  5.  
  6.  
  7.  
  8. Private Sub Text1_Change()
  9.     DataGrid1.SetFocus
  10. End Sub
  11.  
  12. Private Sub Text1_GotFocus()
  13.     MsgBox "el textbox tiene el foco"
  14. End Sub
  15.  
  16. Private Sub DataGrid1_GotFocus()
  17.     MsgBox "datagrid obtiene el fco"
  18. End Sub
  19.  
  20.  
«Ma non troppo»
----> ModoVacaciones = False<----

9tnix

  • Miembro MUY activo
  • ***
  • Mensajes: 165
  • Nacionalidad: pe
    • Ver Perfil
Re: Foco loco con DataGrid
« Respuesta #2 en: Martes 23 de Noviembre de 2010, 22:42 »
0
Hola Nebire

Gracias por responder, el siguiente es el codigo y solo he modificado las propiedades de DataGrid

AllowUpdate=False
MarqueStyle = 5 (para seleccionar toda la Fila)

Pruebalo estoy seguro que debe suceder lo mismo, cuando el foco esta en el Textbox hazle tab se pasa al DataGrid vuelve a hacerlo y regresara al Textbox nuevamente haz tab y el foco va al DataGrid pero automaticamente se regresa al Textbox.

Intentalo a ver si te pasa lo mismo

Salu2
Zeekel

Código: Visual Basic
  1.  
  2. Private Cnn as ADODB.Connection
  3. Private Rst as ADODB.Recordset
  4.  
  5. Private Sub Form_Load()
  6.  'Asumamos que aqui se ha creado la conexion y se ha abierto
  7.  Set Rst = Cnn.Execute("Select * From Cliente Where Nombre Like '%" & Text1.Text & "%'")
  8.   Set DataGrid1.DataSource= Rst
  9. End Sub
  10.  
  11.  
TP-Systems
our knowledge is our power!