Seleccionar toda una fila con un clic en una celda

1981 vistas

La clase System.Windows.Forms.DataGrid.HitTestInfo permite detectar qué parte de un DataGrid se ha seleccionado con un clic. Para hacerlo, tendremos uqe usar el método HitTest del Datagrid:



vbnet
  1. Imports System
  2. Imports System.Drawing
  3. Imports System.Windows.Forms
  4. '...
  5. Private Sub DG_MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs) Handles DG.MouseUp
  6.   ' recuperamos las coordenadas del ratón
  7.   Dim p = New Point(e.X, e.Y)
  8.   ' determinamos la parte clicada del DataGrid
  9.   Dim HTI As DataGrid.HitTestInfo = DG.HitTest(p)
  10.   ' si es de tipo 'celda'
  11.   If (HTI.Type = DataGrid.HitTestType.Cell) Then
  12.       ' definimos la celda en curso
  13.       DG.CurrentCell = New DataGridCell(HTI.Row, HTI.Column)
  14.       ' seleccionamos la línea correspondiente
  15.       DG.Select(HTI.Row)
  16.   End If
  17. End Sub