2011-12-16 4 views
0

私はvb.netプロジェクトで図を描画するためにzedgraphを使用します。 図のx軸はです。私は日付のx軸の最小値と最大値を示す2つのテキストボックスを持っています。次のコードは、isEnableWheelZoomプロパティを使用してFigureをズームしたときにx軸の値を取得する方法を示しています。このリンクzedgraph EnableWheelZoom, how to get axis values after zooming?も参照してください。しかし、私は軸の値だけを得ることが分かった。 4508.345、しかしNOT私が望む日付。実際に図形には、正確に日付が表示されます。私の質問は、数字の最小値と最大値の取得方法です。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

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 
関連する問題