red*_*una 6 c# charts winforms
我正在使用C#内置的Winforms Chart控件(System.Windows.Forms.DataVisualization.Charting.Chart),它具有内置功能,允许用户选择一个范围.我想做的是回读用户选择的范围.当然必须有一些简单的方法来做到这一点,但我一直无法找到它.
光标启用如下:
var ca = chart1.ChartAreas["ChartArea1"].CursorX;
ca.CursorX.IsUserEnabled = true;
ca.CursorX.IsUserSelectionEnabled = true;
Run Code Online (Sandbox Code Playgroud)
我知道当用户通过启用选择范围时我可以使图表变焦ca.AxisX.ScaleView.Zoomable
,但我不希望图片改变:相反,我使用图表作为显示信息的方式,让用户选择一个范围然后我做了一些额外处理的X值.
我尝试连接到chart1.SelectionRangeChanged,并且每次更改范围时确实会触发 - 我似乎无法从CursorEventArg中获取选择范围.它有" NewSelectionStart
"和" NewSelectionEnd
"字段,但这些都是NaN
令人失望的.我试着查看图表和轴的各种属性,但没有找到任何听起来很有希望的东西.
进一步的调查揭示了ChartArea.CursorX.SelectionStart属性,这听起来正是我需要的......除了它也是NaN.我不知道这是正常还是我遇到某种错误?
那么,我该如何确定用户选择的范围?
好吧,好吧,我明白了.这是独家新闻:
有一个SelectionRangeChang*ING*事件,当一个运行ChartArea.CursorX.SelectionStart
和ChartArea.CursorX.SelectionEnd
领域在他们有正确的价值观.但是用户还没有释放鼠标按钮,所以你应该只存储它们.
当用户释放鼠标按钮时,将触发SelectionRangeChang*ed*事件.不知何故,它的设计方式使SelectionStart和SelectionEnd重置为NaN(就像事件参数中的NewSelectionStart
和NewSelectionEnd
字段一样).您现在要做的是使用您从其他事件处理程序中获取的值,因为您知道使用它们的时间是正确的.
所以你有它!希望这个答案能够让其他人免于浪费时间.
归档时间: |
|
查看次数: |
5024 次 |
最近记录: |