Programación General > Visual Basic 6.0 e inferiores
Foco loco con DataGrid
(1/1)
9tnix:
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
Nebire:
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 --- Private Sub Form_Load() DataGrid1.TabStop = FalseEnd Sub Private Sub Text1_Change() DataGrid1.SetFocusEnd Sub Private Sub Text1_GotFocus() MsgBox "el textbox tiene el foco"End Sub Private Sub DataGrid1_GotFocus() MsgBox "datagrid obtiene el fco"End Sub
9tnix:
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 --- Private Cnn as ADODB.ConnectionPrivate Rst as ADODB.Recordset Private Sub Form_Load() 'Asumamos que aqui se ha creado la conexion y se ha abierto Set Rst = Cnn.Execute("Select * From Cliente Where Nombre Like '%" & Text1.Text & "%'") Set DataGrid1.DataSource= RstEnd Sub
Navegación
Ir a la versión completa