tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルChartスクロールバーの操作
記事No10949
投稿日: 2012/11/08(Thu) 10:38
投稿者MM3
開発環境:
Microsoft Windows Xp
Visual Studio 2010
.Net Framework 4.0
Chart コントロール

Chartコントロールのスクロールバーをつかんで、操作することができません。
設定方法を教えてください。
よろしくお願いします。

以下 状況を説明します。
-------------------------------------------------------------------------------
【設定項目】
ChartType:FastLine
ChartArea コレクションエディター
    CurSorX IsUserEnabled,IsUserSelectionEnabled:Ture
【コード】
    Private Sub Form4_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim dateX As DateTime = DateTime.Now
        Dim random As New Random
        For pointIndex = 0 To 30
            Chart1.Series(0).Points.AddXY(dateX, random.Next(0, 100))
            dateX = dateX.AddDays(1)
        Next
    End Sub

上記の場合、グラフ表示後、マウスで範囲指定するとスクロールバーが表示され、
マウスでスクロールバーをクリックしたまま、操作することが、可能です。

【設定項目】
Series コレクションエディター
    XValue Type:DateTime
ChartArea コレクションエディター
    CurSorX InterValOffsetType,InterValType:Milliseconds
【追加・変更コード】
        Chart1.ChartAreas("ChartArea1").AxisX.LabelStyle.Format = "HH:mm:ss.FFF"
        dateX = dateX.AddMilliseconds(100)

上記のようみ、X軸の単位を日付からミリ秒にするとスクロールバーが
つかむことができなくなります。また、スモールスクロール(両端の矢印)を押すと
始点、終点へと切り替わりSmall Scroll Sizeの設定を認識しません。

ChartArea コレクションエディター
Axis コレクションエディター Xaxis
    MajorGrid,MajorTickMark,ScaleView
等の設定をいろいろ試したのですが、ダメでした。

説明不足の場合は、ご指摘してください。

以上 よろしくお願いします。

[ツリー表示へ]
タイトルRe: Chartスクロールバーの操作
記事No10951
投稿日: 2012/11/08(Thu) 17:09
投稿者VBレスキュー(花ちゃん)
> 上記のようみ、X軸の単位を日付からミリ秒にするとスクロールバーが
> つかむことができなくなります。また、スモールスクロール(両端の矢印)を押すと
> 始点、終点へと切り替わりSmall Scroll Sizeの設定を認識しません。

どこでどのように変更追加されたのか、追加後のコードを試す事(見る事も)ができませんので
できれば、現状を確認できるコード(データ含む)を投稿して下さい。

  下記は参考になりませんか?
  http://www.hanatyan.sakura.ne.jp/dotnet/chart28.htm

[ツリー表示へ]
タイトルRe^2: Chartスクロールバーの操作【解決】
記事No10952
投稿日: 2012/11/08(Thu) 18:22
投稿者MM3
VBレスキュー(花ちゃん)様
返信ありがとうございます。

説明不足ですみません。
----------------------------------------------
最初に、フォームを追加し、フォームデザインで、chartを追加し、
プロパティウインドウで設定しました。
【設定項目】
Series コレクションエディター
    ChartType:FastLine
ChartArea コレクションエディター
    CurSorX IsUserEnabled,IsUserSelectionEnabled:Ture
【コード】
    Private Sub Form4_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim dateX As DateTime = DateTime.Now
        Dim random As New Random
        For pointIndex = 0 To 30
            Chart1.Series(0).Points.AddXY(dateX, random.Next(0, 100))
            dateX = dateX.AddDays(1)
        Next
    End Sub
コードは、上記のみです。ここまでは、確認されたということで。

この状態から。
【コード】
    Private Sub Form4_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Chart1.ChartAreas("ChartArea1").AxisX.LabelStyle.Format = "HH:mm:ss.FFF ← 追加
        Dim dateX As DateTime = DateTime.Now
        Dim random As New Random
        For pointIndex = 0 To 30
            Chart1.Series(0).Points.AddXY(dateX, random.Next(0, 100))
            dateX = dateX.AddMilliseconds(100) ← 変更
        Next
    End Sub
【設定項目】
Series コレクションエディター
    XValue Type:DateTime
ChartArea コレクションエディター
    CurSorX InterValOffsetType,InterValType:Milliseconds
と、プロパティウインドウで操作し、変更しました。
データは、コード内にランダムに設定しています。
----------------------------------------------
自己解決しました。

【設定項目】
ChartArea コレクションエディター
Axis コレクションエディター
        ScaleView
        (SizeType):Milliseconds
        SmallScrollMinSize:100
        SmallScrollMinSizeType:Milliseconds
上記を設定することにより、解決しました。

お騒がせしました。

[ツリー表示へ]