Back to Devexpress

How to: Identify the Grid's Element Located Under the Mouse Cursor

windowsforms-3052-controls-and-libraries-data-grid-examples-miscellaneous-how-to-identify-the-grids-element-located-under-the-mouse-cursor.md

latest2.0 KB
Original Source

How to: Identify the Grid's Element Located Under the Mouse Cursor

  • Aug 01, 2019
  • 2 minutes to read

The following sample code shows how to identify the element located at a specific point using the GridView.CalcHitInfo method.

In the example, the CalcHitInfo method is called when you move the cursor over a Grid Control. The name of the current View element is displayed in the form’s caption.

csharp
using DevExpress.XtraGrid;
using DevExpress.XtraGrid.Views.Base;
using DevExpress.XtraGrid.Views.Base.ViewInfo;
using DevExpress.XtraGrid.Views.Grid.ViewInfo;
// ...
private void gridControl1_MouseMove(object sender, MouseEventArgs e) {
    GridControl grid = sender as GridControl;
    if (grid == null) return;
    // Get a View at the current point.
    BaseView view = grid.GetViewAt(e.Location);
    if (view == null) return;
    // Retrieve information on the current View element.
    BaseHitInfo baseHI = view.CalcHitInfo(e.Location);
    GridHitInfo gridHI = baseHI as GridHitInfo;
    if (gridHI != null)
        Text = gridHI.HitTest.ToString();
}
vb
Imports DevExpress.XtraGrid
Imports DevExpress.XtraGrid.Views.Base
Imports DevExpress.XtraGrid.Views.Base.ViewInfo
Imports DevExpress.XtraGrid.Views.Grid.ViewInfo
' ...
Private Sub GridControl1_MouseMove(ByVal sender As System.Object, _
  ByVal e As System.Windows.Forms.MouseEventArgs) _
  Handles GridControl1.MouseMove
    Dim grid As GridControl = sender
    If grid Is Nothing Then
        Return
    End If
    ' Get a View at the current point.
    Dim view As BaseView = grid.GetViewAt(e.Location)
    If view Is Nothing Then
        Return
    End If
    ' Retrieve information on the current View element.
    Dim baseHI As BaseHitInfo = view.CalcHitInfo(e.Location)
    Dim gridHI As GridHitInfo = TryCast(baseHI, GridHitInfo)
    If Not gridHI Is Nothing Then
        Text = gridHI.HitTest.ToString()
    End If
End Sub