Me tiene loco lo de seleccionar toda la fila...

22/04/2005 - 10:43 por tchavi_jpn | Informe spam
Hola buenas...

He leido mucho sobre esto pero no soy capaz de dar con ello.

Lo que quiero es que el datagrid muestre toda la fila seleccionada (se
haya pulsado con el raton o se haya movido con las teclas) y que no
muestre el cursor (como si se fuera a escribir) en la celda altual.

He probado el siguiente codigo en mouseup:

Dim Puntero = New Point(e.X, e.Y)

Dim hti As DataGrid.HitTestInfo = GridConsulta.HitTest(Puntero)

If hti.Type = DataGrid.HitTestType.Cell Then

GridConsulta.CurrentCell = New DataGridCell(hti.Row, hti.Column)

GridConsulta.Select(hti.Row)

End If

...y esto es lo que quiero, pero claro, solo funciona para el raton.
Si doy con las teclas ya no vale.

¿Cómo lo puedo hacer?

Espero que me podais ayudar y muchas gracias.

Preguntas similare

Leer las respuestas

#1 Irak Rubio
22/04/2005 - 16:23 | Informe spam
Te aconsejo que investigues acerca de un
componente llamado True dbGrid o FlexGrid que son
de Component One, son completos, profesionales
no es shareware, y lo que es mejor, son gratuitos.
No me acuerdo de la pagina de donde lo descargas
pero en un buscador lo podras encontrar.
(ademas de que tienen otro titipuchal de controles mejorados.)
Te aseguro que ya no vas a volver a batallar
con el pinche grid que trae visual studio por default
saludos.

"Javier" escribió:

Hola buenas...

He leido mucho sobre esto pero no soy capaz de dar con ello.

Lo que quiero es que el datagrid muestre toda la fila seleccionada (se
haya pulsado con el raton o se haya movido con las teclas) y que no
muestre el cursor (como si se fuera a escribir) en la celda altual.

He probado el siguiente codigo en mouseup:

Dim Puntero = New Point(e.X, e.Y)

Dim hti As DataGrid.HitTestInfo = GridConsulta.HitTest(Puntero)

If hti.Type = DataGrid.HitTestType.Cell Then

GridConsulta.CurrentCell = New DataGridCell(hti.Row, hti.Column)

GridConsulta.Select(hti.Row)

End If

y esto es lo que quiero, pero claro, solo funciona para el raton.
Si doy con las teclas ya no vale.

¿Cómo lo puedo hacer?

Espero que me podais ayudar y muchas gracias.

Respuesta Responder a este mensaje
#2 Martin
22/04/2005 - 17:25 | Informe spam
Hola Javier añade el siguiente codigo:

Private Sub DGDres_MouseUp(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles DGDres.MouseUp

Dim pt = New Point(e.X, e.Y)

Dim hti As DataGrid.HitTestInfo = Me.DGDres.HitTest(pt)

If hti.Type = DataGrid.HitTestType.Cell Then

Me.DGDres.CurrentCell = New DataGridCell(hti.Row, hti.Column)

Me.DGDres.Select(hti.Row)

End If

End Sub

Es para una grid que se llama DGDres, pones en su lugar la tuya, espero que
te sirva. Salu2.





"Javier" escribió en el mensaje
news:
Hola buenas...

He leido mucho sobre esto pero no soy capaz de dar con ello.

Lo que quiero es que el datagrid muestre toda la fila seleccionada (se
haya pulsado con el raton o se haya movido con las teclas) y que no
muestre el cursor (como si se fuera a escribir) en la celda altual.

He probado el siguiente codigo en mouseup:

Dim Puntero = New Point(e.X, e.Y)

Dim hti As DataGrid.HitTestInfo = GridConsulta.HitTest(Puntero)

If hti.Type = DataGrid.HitTestType.Cell Then

GridConsulta.CurrentCell = New DataGridCell(hti.Row, hti.Column)

GridConsulta.Select(hti.Row)

End If

...y esto es lo que quiero, pero claro, solo funciona para el raton.
Si doy con las teclas ya no vale.

¿Cómo lo puedo hacer?

Espero que me podais ayudar y muchas gracias.
Respuesta Responder a este mensaje
#3 Martin
22/04/2005 - 17:30 | Informe spam
Perdona que no habia leido que ya tenias el codigo, pues no se como
solucionar el problema cuando se usa el teclado. sorry..

"Javier" escribió en el mensaje
news:
Hola buenas...

He leido mucho sobre esto pero no soy capaz de dar con ello.

Lo que quiero es que el datagrid muestre toda la fila seleccionada (se
haya pulsado con el raton o se haya movido con las teclas) y que no
muestre el cursor (como si se fuera a escribir) en la celda altual.

He probado el siguiente codigo en mouseup:

Dim Puntero = New Point(e.X, e.Y)

Dim hti As DataGrid.HitTestInfo = GridConsulta.HitTest(Puntero)

If hti.Type = DataGrid.HitTestType.Cell Then

GridConsulta.CurrentCell = New DataGridCell(hti.Row, hti.Column)

GridConsulta.Select(hti.Row)

End If

...y esto es lo que quiero, pero claro, solo funciona para el raton.
Si doy con las teclas ya no vale.

¿Cómo lo puedo hacer?

Espero que me podais ayudar y muchas gracias.
Respuesta Responder a este mensaje
#4 Victor
22/04/2005 - 23:40 | Informe spam
Hola Javier.

Yo también pasé por este problema y me tardé mucho, el problema es que no
estamos aplicando el evento correcto, el evento que se debe usar es

CurrentCellChanged

Quedaría algo así.

Private Sub dgClientes_CurrentCellChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles dgClientes.CurrentCellChanged
Dim idEmpresa As Integer
lblFila.Text = "Fila" & dgClientes.CurrentRowIndex & " Columna:" &
dgClientes.CurrentCell.ColumnNumber
dgClientes.Select(dgClientes.CurrentRowIndex)
End Sub
lblFila es un Label, que al mover o cambiarte de celda te muesta el numero
de Fila y el numero de columna

dgClientes es tu datagrid

Espero que esto les ayude a varios ya que veo que casi nadie quiere usar el
datagrid de VS.Net.

Saludos.


"Javier" escribió en el mensaje
news:
Hola buenas...

He leido mucho sobre esto pero no soy capaz de dar con ello.

Lo que quiero es que el datagrid muestre toda la fila seleccionada (se
haya pulsado con el raton o se haya movido con las teclas) y que no
muestre el cursor (como si se fuera a escribir) en la celda altual.

He probado el siguiente codigo en mouseup:

Dim Puntero = New Point(e.X, e.Y)

Dim hti As DataGrid.HitTestInfo = GridConsulta.HitTest(Puntero)

If hti.Type = DataGrid.HitTestType.Cell Then

GridConsulta.CurrentCell = New DataGridCell(hti.Row, hti.Column)

GridConsulta.Select(hti.Row)

End If

...y esto es lo que quiero, pero claro, solo funciona para el raton.
Si doy con las teclas ya no vale.

¿Cómo lo puedo hacer?

Espero que me podais ayudar y muchas gracias.
Respuesta Responder a este mensaje
#5 Javier
23/04/2005 - 09:41 | Informe spam
Muchas gracias por contestar.

Una pregunta, Irak Rubio, ¿Estás seguro que el True DBGrid de
Component One es gratuito? es que he estado mirando y me ha parecido
entender que es de prueba, que si lo quieres utilizar "en serio"
tienes que pagar.

Victor, tu solución está bien pero es que me sigue mostrando el cursor en la
celda como si fuera a escribir.

lo dicho, muchas gracias.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida