windowsforms-devexpress-dot-xtragrid-dot-views-dot-grid-dot-gridview-dot-calchitinfo-x28-system-dot-drawing-dot-point-x29.md
Returns information about View elements located at a specified point.
Namespace : DevExpress.XtraGrid.Views.Grid
Assembly : DevExpress.XtraGrid.v25.2.dll
NuGet Packages : DevExpress.Win.Grid, DevExpress.Win.Navigation
public GridHitInfo CalcHitInfo(
Point pt
)
Public Function CalcHitInfo(
pt As Point
) As GridHitInfo
| Name | Type | Description |
|---|---|---|
| pt | Point |
A Point structure specifying test point coordinates relative to the grid control’s top-left corner.
|
| Type | Description |
|---|---|
| GridHitInfo |
A GridHitInfo object that contains information about View elements located at the test point.
|
Use the CalcHitInfo method to determine which element is located at a specified point. For instance, this can be used when handling the View’s Click event to determine which element was clicked. In such instances, you will pass the current mouse pointer’s coordinates as the method’s parameter.
Please refer to the GridHitInfo class description for details on what information is provided by the method’s return value. The Hit Information topic provides general information on obtaining and using hit information.
Note
Detail pattern Views do not contain data and they are never displayed within XtraGrid. So, the CalcHitInfo member must not be invoked for these Views. The CalcHitInfo member can only be used with Views that display real data within the Grid Control. Use the following methods to access these Views with which an end user interacts at runtime.
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.
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();
}
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
The following code snippets (auto-collected from DevExpress Examples) contain references to the CalcHitInfo(Point) method.
Note
The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.
winforms-grid-custom-button-in-column-header/CS/WindowsApplication3/ColumnHeaderExtender.cs#L52
void OnMouseUp(object sender, MouseEventArgs e) {
GridHitInfo hitInfo = view.CalcHitInfo(e.Location);
if(hitInfo.HitTest != GridHitTest.Column) return;
winforms-grid-multi-cell-editing/CS/MultiSelectionEditingHelper.cs#L32
{
GridHitInfo hi = view.CalcHitInfo(e.Location);
if (view.FocusedRowHandle == hi.RowHandle)
{
GridHitInfo hitInfo = view.CalcHitInfo(e.Location);
if (hitInfo.HitTest == GridHitTest.Row && view.IsGroupRow(hitInfo.RowHandle))
winforms-grid-toggle-checkbox-state-with-one-click/CS/Form1.cs#L43
{
GridHitInfo hi = view.CalcHitInfo(e.Location);
if (hi.InRowCell)
winforms-grid-select-rows-using-mouse-without-ctrl/CS/MultiSelectionHelper.cs#L42
{
GridHitInfo hi = _GridView.CalcHitInfo(e.Location);
if (!hi.InRow)
winforms-grid-custom-button-in-column-header/VB/WindowsApplication3/ColumnHeaderExtender.vb#L52
Private Sub OnMouseUp(ByVal sender As Object, ByVal e As MouseEventArgs)
Dim hitInfo As GridHitInfo = view.CalcHitInfo(e.Location)
If hitInfo.HitTest <> GridHitTest.Column Then
winforms-grid-multi-cell-editing/VB/MultiSelectionEditingHelper.vb#L29
If GetInSelectedCell(e) Then
Dim hi As GridHitInfo = view.CalcHitInfo(e.Location)
If view.FocusedRowHandle = hi.RowHandle Then
Private Sub OnMouseMove(ByVal sender As Object, ByVal e As MouseEventArgs)
Dim hitInfo As GridHitInfo = view.CalcHitInfo(e.Location)
If hitInfo.HitTest = GridHitTest.Row AndAlso view.IsGroupRow(hitInfo.RowHandle) Then
winforms-grid-toggle-checkbox-state-with-one-click/VB/Form1.vb#L40
Private Shared Sub CheckGridViewClick(ByVal e As MouseEventArgs, ByVal view As GridView)
Dim hi As GridHitInfo = view.CalcHitInfo(e.Location)
If hi.InRowCell Then
winforms-grid-select-rows-using-mouse-without-ctrl/VB/MultiSelectionHelper.vb#L36
Private Sub OnMouseDown(ByVal e As MouseEventArgs)
Dim hi As GridHitInfo = _GridView.CalcHitInfo(e.Location)
If Not hi.InRow Then
See Also