You can subclass the ChartZoom class, and process your cursor in the OnMouseDown and OnMouseUp overrides. A
private class ZoomWithCursor : ChartZoom
{
public ZoomWithCursor(ChartView component, CartesianCoordinates transform, double zpos, bool brescale):
base(component, transform, zpos, brescale)
{
}
public override void OnMouseDown(MouseEventArgs mouseevent)
{
// Your routine
SetCursor();
// if right mouse button, pop zoom stack one level
if ((mouseevent.Button & MouseButtons.Right) != 0)
this.PopZoomStack();
else
base.OnMouseDown(mouseevent);
}
public override void OnMouseUp(MouseEventArgs mouseevent)
{
base.OnMouseUp(mouseevent);
// Your routine
RestoreCursor();
}
}