2011-12-16 187 views
0

我使用zedgraph在我的vb.net项目中绘制图形。 图的x轴是日期。我有两个文本框显示日期中x轴的最小值和最大值。以下代码显示如何在使用isEnableWheelZoom属性缩放图形时获取x轴值,另请参阅此链接zedgraph EnableWheelZoom, how to get axis values after zooming?。但是我发现我只能得到轴值,例如4508.345,但是不是我想要的日期。其实在图上,它正确显示日期。我的问题是如何获得数字上的最小和最大日期?zedgraph,如何将XAxis.Scale.Min转换为日期

Friend WithEvents gcMain As ZedGraph.ZedGraphControl 
Me.gcMain.IsZoomOnMouseCenter = True 
Me.gcMain.IsEnableWheelZoom = True 

    Private Sub gcMain_ZoomEvent(ByVal sender As ZedGraphControl, ByVal oldState As ZoomState, ByVal newState As ZoomState) Handles gcMain.ZoomEvent 
    tbxRangeStart.Text = CStr(New XDate(gcMain.GraphPane.XAxis.Scale.Min)) 
    tbxRangeEnd.Text = CStr(New XDate(gcMain.GraphPane.XAxis.Scale.Max)) 

End Sub 

回答

0

你几乎明白了。您只需将其转换为DateTime:

Dim minDate As XDate = New XDate(gcMain.GraphPane.XAxis.Scale.Min) 
tbxRangeStart.Text = minDate.DateTime.ToString() 

有关XData格式的更多信息,请参阅API

+0

嗨,谢谢你的回答。我发现我可以在zedgraph中使用XLDateToCalendarDate函数。但你的答案似乎更好 - ^ – Summer 2011-12-19 17:54:40

0

其实,XAxis.Min和XAxis.Max都是XLDate。所以答案是使用XLDateToCalendarDate

Private Sub gcMain_ZoomEvent(ByVal sender As ZedGraphControl, ByVal oldState As ZoomState, ByVal newState As ZoomState) Handles gcMain.ZoomEvent 

    Dim xlMin, xlMax As Double 
    Dim year, month, day, hour, minute As Integer 
    Dim second As Double 
    Dim dateStart As Date 
    Dim dateEnd As Date 

    xlMin = gcMain.GraphPane.XAxis.Scale.Min 
    xlMax = gcMain.GraphPane.XAxis.Scale.Max 

    ZedGraph.XDate.XLDateToCalendarDate(xlMin, year, month, day, hour, minute, second) 
    dateStart = New Date(year, month, day, hour, minute, CInt(second)) 

    ZedGraph.XDate.XLDateToCalendarDate(xlMax, year, month, day, hour, minute, second) 
    dateEnd = New Date(year, month, day, hour, minute, CInt(second)) 

       SetDateText(textbox1.TextBox, dateStart) 
       SetDateText(text) 

End Sub 

    Private Sub SetDateText(ByRef tbx As TextBox, ByVal dte As Date) 
    Try 
     tbx.Text = dte.Hour.ToString("00") + " : " + dte.Minute.ToString("00") 
    Catch 
    End Try 
End Sub