我在.NET 4,Chart(Visual Basic,VS2010)中创建图表。我启用了Zoom(通过CursorX,Y)和Chart中的Scrollbar用法。用户缩放IN / OUT和SCROLLING(滚动条使用)后,我需要知道当前(对于Ax X)选择(显示)的范围。
我可以使用本主题中的方法获得Zoom IN后的选定范围:
How to retrieve the selected range in the .Net WinForms Chart Control?
这样做很好,但仅适用于ZOOM IN,不适用于滚动/缩放OUT(通过鼠标缩小单击滚动条的开始位置 - 缩放重置)。
我试图同时检查SelectionRangeChangIN/CHANGED
,但这个FIRE /都不适用于ZOOM OUT / Scroll。
如何获取当前选定(可见)的CHART范围? 我可以接受(作为一些近似解决方案)来找出第一个/最后一个当前可见的X轴标签。
我需要当前的图表打印选定范围来显示打印图表的开始/结束日期。我检查了.NET Windows窗体图表控件工具(有200个示例和C / VB中的源代码),但这里没有涉及。
答案 0 :(得分:0)
解决了! 我从这里添加鼠标滚轮缩放:
how to enable zooming in Microsoft chart control by using Mouse wheel
现在我可以通过捕捉来获得当前的选择:
我使用的AxisX.ScaleView.ViewMinimum,AxisX.ScaleView.ViewMaximum在所有这三种情况下似乎都没问题。 以下是我的跟踪示例。变量dSelDol。 dSelHor是双倍的。
Private Sub HDGraf_AxisViewChanged(sender As System.Object, e As System.Windows.Forms.DataVisualization.Charting.ViewEventArgs) Handles HDGraf.AxisViewChanging, _
HDGraf.AxisViewChanged
Zobraz("Axis View Changed/ing")
End Sub
Private Sub Zobraz(sS As String)
Dim dData, dDatb As Date
Please_wait(_OK, sS, 0)
dSelDol = HDGraf.ChartAreas(0).AxisX.ScaleView.ViewMinimum
dSelHor = HDGraf.ChartAreas(0).AxisX.ScaleView.ViewMaximum
dData = Date.FromOADate(dSelDol)
dDatb = Date.FromOADate(dSelHor)
Me.Ldol.Text = Format(dData, "dd.MM.yyyy HH:mm:ss")
Me.LHor.Text = Format(dDatb, "dd.MM.yyyy HH:mm:ss")
End Sub