Reputation: 329
I have a chart, in it there is one chartarea with x-axis y-axis. First of all, I have to set it to zoomable,
chart1.ChartAreas[0].AxisY.ScaleView.Zoomable = true;
chart1.ChartAreas[0].AxisX.ScaleView.Zoomable = true;
By default, if I select a rectangular area using the mouse, the chart will zoom to the selected area. But this is quite annoying because it is prone to false operation. But if I do this:
chart1.ChartAreas[0].AxisY.ScaleView.Zoomable = false;
chart1.ChartAreas[0].AxisX.ScaleView.Zoomable = false;
The Axes won't zoom, even if I call
chart1.ChartAreas[0].AxisX.ScaleView.Zoom(a, b);
So, I want the chartarea to be zoomable, but I don't like the mouse selection ability.
I found a method,
void chart1_SelectionRangeChanged(object sender, CursorEventArgs e)
It seems that when I select a new area, this method will be called, but it is not meant to be override. What can I do? Thank you!
Upvotes: 5
Views: 12200
Reputation: 4600
try this:
var ca = chart1.ChartAreas["ChartArea1"];
ca.CursorX.IsUserEnabled = false;
ca.CursorX.IsUserSelectionEnabled = false;
(and same for CursorY, and replacing "ChartArea1" with the name of your chart area if it's different).
This will disable the mouse selection, so you won't risk accidental zooming anymore.
Upvotes: 3