Search code examples
c#.netmschart

Showing Mouse Axis Coordinates on Chart Control


Is there a simple way to retrieve the X/Y coordinates of ANY point in the chart Area (relative to that chart Axis of course)?

As of now, I just managed to retrieve coordinates when the mouse is on a Series (not outside)

private void chart_GetToolTipText(object sender, ToolTipEventArgs e)
{
    if (e.HitTestResult.Series != null)
    {
        e.Text = e.HitTestResult.Series.Points[e.HitTestResult.PointIndex].YValues[0] + " \n " + DateTime.FromOADate(e.HitTestResult.Series.Points[e.HitTestResult.PointIndex].XValue);
    }
}

Solution

  • Anyway, as always with MS Chart Controls, there is no easy way to do things,
    but a funky workaround to get things done. I am sadly getting used to it...

    private void chart1_MouseWhatever(object sender, MouseEventArgs e)
    {
        chartArea1.CursorX.SetCursorPixelPosition(new Point(e.X, e.Y), true);
        chartArea1.CursorY.SetCursorPixelPosition(new Point(e.X, e.Y), true);
    
        double pX = chartArea1.CursorX.Position; //X Axis Coordinate of your mouse cursor
        double pY = chartArea1.CursorY.Position; //Y Axis Coordinate of your mouse cursor
    }