How can I get the absolute row,col index of a grid cell under the mouse? The Grid.CellClicked event gives the "proper" absolute coords, but if you are using
Point pt = m_Grid.PointToClient(Cursor.Position);
int row, col;
m_Grid.ViewLayout.PointToClientRowCol(pt,out row, out col, false, GridCellSizeKind.ActualSize);
you get coords of the VISIBLE grid. This works fine if the whole grid fits on the screen, but if not things don''t work quite so well; for example if you are trying to map the coords of the cell to an underlying data structure.
So the question becomes: How can I get the absolute cell coords inside a non-MouseEvent-based method or handler, like ContextMenu.Popup?
ADAdministrator Syncfusion Team November 8, 2004 01:29 PM
grid.PointToRowCol(pt, out row, out col, -1); // where pt is in the grid coordinate system
KSKeith SteinbeckNovember 8, 2004 03:17 PM
Great! That seems to do what I need. I''m curious though; the docs for that function state:
Points that below the last visible row or right of the last column will be adjusted as defined in the fixOutOfRange parameter.
Use -1 if Empty should be returned.
The return type is bool, and I don''t think there is a Boolean.Empty. Is this an error in the docs, or am I misunderstanding how this applies?
>grid.PointToRowCol(pt, out row, out col, -1); // where pt is in the grid coordinate system
ADAdministrator Syncfusion Team November 8, 2004 04:23 PM
It is the row and col returned values that are influenced by the fixOutOfRange value. A zero returns a ''closest'' existing row/col. A non-zero value will return -1''s for both values.