SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: 9tnix en Jueves 4 de Noviembre de 2010, 17:07

Título: Foco loco con DataGrid
Publicado por: 9tnix en Jueves 4 de Noviembre de 2010, 17:07
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
Título: Re: Foco loco con DataGrid
Publicado por: Nebire en Viernes 5 de Noviembre de 2010, 21:31
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.  
Título: Re: Foco loco con DataGrid
Publicado por: 9tnix en Martes 23 de Noviembre de 2010, 22:42
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.