如何检索在.NET的WinForms图表控件选择的范围?(How to retrieve the s

2019-08-19 03:59发布

我使用的是内置的WinForms图表控制(C# System.Windows.Forms.DataVisualization.Charting.Chart ),其内置的让用户选择一个范围的能力。 我想要做的就是回读什么范围的用户选择。 当然必须有一些简单的方法来做到这一点,但我一直没能找到它。

光标被启用,像这样:

var ca = chart1.ChartAreas["ChartArea1"].CursorX;
ca.CursorX.IsUserEnabled = true;
ca.CursorX.IsUserSelectionEnabled = true;

我知道我可以使图表变焦时,用户选择范围内实现ca.AxisX.ScaleView.Zoomable ,但我不希望画面改变:而不是我用图表的方式显示信息和让用户选择一个带X值,然后我做一些额外的处理。

我试图钩住chart1.SelectionRangeChanged并且确实触发间隔的范围内变化时 - 我似乎无法得到从CursorEventArg我回来了选择范围。 它具有“ NewSelectionStart ”和“ NewSelectionEnd ”领域,但这些都是NaN ,令人失望。 我试图寻找在图表和轴的各种属性,但没有发现任何东西,听起来前途。

进一步的调查揭示了ChartArea.CursorX.SelectionStart这听起来像正是我需要的属性......除了它的NaN的了。 我不知道这是否正常,或者我打一些类型的错误?

所以,我怎么能弄清楚范围用户选择什么呢?

Answer 1:

OK,很好,我想它了。 这里的独家新闻:

有一个SelectionRangeChang * ING *事件,当一个运行ChartArea.CursorX.SelectionStartChartArea.CursorX.SelectionEnd领域在他们正确的价值观。 但用户并没有释放鼠标按键呢,所以你只要保存。

当用户松开鼠标按钮时,SelectionRangeChang * ED *事件触发。 不知怎的,它的设计以这样一种方式,SelectionStart和选定结束被重置为NaN(就像NewSelectionStartNewSelectionEnd事件参数的字段)。 你所要做的就是用你从其他的事件处理程序squirreled走现在你知道的时间是正确的,使用它们的值。

所以你有它! 希望这个答案将节省的人浪费时间别的。



文章来源: How to retrieve the selected range in the .Net WinForms Chart Control?