Hi, I would like to catch the mouse hover event and determine the cell the mouse is on. The intent is to display a user control over the cell.
Can you suggest the best method for this?
The mouse hover event only gives a system event (no x,y). I started looking at the MouseDispatchController but am getting lost.
thanks,
a
CB
Clay Burch
Syncfusion Team
September 10, 2002 11:54 AM UTC
Here is code that will retrieve the row and col numbers of the hover cell as well as the cell rectangle.
private void gridControl1_MouseHover(object sender, System.EventArgs e)
{
Point pt = this.gridControl1.PointToClient(Cursor.Position);
int row, col;
this.gridControl1.ViewLayout.PointToClientRowCol(pt, out row, out col, true);
Rectangle cellRect = this.gridControl1.RangeInfoToRectangle(GridRangeInfo.Cell(row, col));
Console.WriteLine(cellRect.ToString());
}
AK
Andre King
September 12, 2002 08:41 PM UTC
Just what I needed, thanks.
AD
Administrator
Syncfusion Team
November 19, 2003 04:45 PM UTC
I have found that this does not work correctly if the grid has horizontal scrolling and you have scrolled the grid. In this case the first visible column returns 1, when it is actually column 6 or 7 or whatever. Do you know of a way that I can get the true column that the mouse is over?
Thanks for your help.
> Here is code that will retrieve the row and col numbers of the hover cell as well as the cell rectangle.
>
>
> private void gridControl1_MouseHover(object sender, System.EventArgs e)
> {
> Point pt = this.gridControl1.PointToClient(Cursor.Position);
>
> int row, col;
> this.gridControl1.ViewLayout.PointToClientRowCol(pt, out row, out col, true);
>
> Rectangle cellRect = this.gridControl1.RangeInfoToRectangle(GridRangeInfo.Cell(row, col));
>
> Console.WriteLine(cellRect.ToString());
> }
>
AD
Administrator
Syncfusion Team
November 19, 2003 06:00 PM UTC
Use this grid method instead of the one on the ViewLayout.
this.gridControl1.PointToRowCol(pt, out row, out col, -1);