.NET 4图表,在ZOOM IN / OUT和滚动后检索范围

时间:2013-12-01 06:59:33

标签: .net charts

我在.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中的源代码),但这里没有涉及。

1 个答案:

答案 0 :(得分:0)

解决了! 我从这里添加鼠标滚轮缩放:

how to enable zooming in Microsoft chart control by using Mouse wheel

现在我可以通过捕捉来获得当前的选择:

  1. 当Fire:SelectionRangeChanged / Changing
  2. 时,通过鼠标(选择三角形)ZOOM IN
  3. 当Fire:AxisViewChanged
  4. 时ZOOM OUT / BAR SCROLL
  5. 鼠标滚轮在Fire:MouseWheel
  6. 时ZOOM IN / OUT

    我使用的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