如何检查鼠标是否在mschart中超过选定区域

时间:2011-07-07 12:45:21

标签: c# visual-studio charts

在我的WinForms应用程序中,我使用这些设置进行Chart控制:

chartArea.CursorX.IsUserEnabled = true;
chartArea.CursorX.IsUserSelectionEnabled = true;
chartArea.AxisX.ScaleView.Zoomable = false;

其中chartArea是我的Chart控件中的主要(且唯一)ChartArea对象。

我想要做的是选择区域的可能性(可能已经存在),当鼠标在这个区域上方时,如果我在所选区域内单击图表cotrol,我也不会放大。< / p>

这里的第一个问题是如何检测我是否超过选定区域?使用chart.HitTest(),我可以获得HitTestResult.PointIndex字段值,并将其与选择范围进行比较。但是这只有在鼠标完全超过DataPoint的情况下才有效。所以我正在使用的SeriesChartType.FastLine 无效

如果以某种方式解决了这个问题,那么在鼠标点击之后(在调用ClickMouseXXX事件之前)选择取消就会出现问题。


解决

我找到了axis.PixelPositionToValue()方法,它给了我所需的每一个信息,因为从MouseMove事件参数我有像素位置。 对于点击事件问题,我会写另一个问题。

1 个答案:

答案 0 :(得分:0)