none
chartコントロール カーソル表示されない RRS feed

  • 質問

  • 横軸:時間、縦軸:値(整数)の折れ線グラフを書き、グラフ上をクリックするとカーソルが表示されるようにしたいのですが、うまくいきません。

    横軸を整数にしたときはカーソルが表示されます。

    SeriesコレクションエディターでXValuetype=Auto

    private void Form4_Load(object sender, EventArgs e)

            {
                for (int i = 0; i < 10; i++)//X int
                {
                    DataPoint dp2 = new DataPoint();
                    dp2.SetValueXY(i, i + 1);
                    chart1.Series[0].Points.Add(dp2);
                }
            }

            private void chart1_MouseClick(object sender, MouseEventArgs e)
            {
                Point mousepoint = new Point(e.X, e.Y);
                chart1.ChartAreas[0].CursorX.SetCursorPixelPosition(mousepoint, true);
            }

    これを、SeriesコレクションエディターでXValuetype=Time

    private void Form4_Load(object sender, EventArgs e)            

            {
        DateTime dt = DateTime.Now;
                for (int i = 0; i < 10; i++)//X datetime
                {
                    DataPoint dp2 = new DataPoint();
                    DateTime dt2 = dt.AddSeconds(i);
                    dp2.SetValueXY(dt2, i + 1);
                    chart1.Series[0].Points.Add(dp2); //槽内温度グラフにデータ追加

                }
            }

    にするとカーソルが表示されなくなります。X軸が日時のときはカーソルは表示できないのでしょうか?

    ご教授いただけないでしょうか

    よろしくお願いいたします。
    • 編集済み ccm2017 2017年7月24日 5:01
    2017年7月24日 2:25

回答

  • 軸の型がDateTimeの場合、.CursorX.IntervalTypeがAuto(既定値)であれば表示できないっぽいですね。

    IntervalTypeおよびIntervalを、適切な値に指定すれば、そこで指定した単位でカーソルを表示できるようになります。

    • 回答としてマーク ccm2017 2017年7月24日 9:21
    2017年7月24日 5:55

すべての返信

  • 軸の型がDateTimeの場合、.CursorX.IntervalTypeがAuto(既定値)であれば表示できないっぽいですね。

    IntervalTypeおよびIntervalを、適切な値に指定すれば、そこで指定した単位でカーソルを表示できるようになります。

    • 回答としてマーク ccm2017 2017年7月24日 9:21
    2017年7月24日 5:55
  • Hongliang様

    ご回答ありがとうございます。

    >IntervalTypeおよびIntervalを、適切な値に指定すれば、そこで指定した単位でカーソルを表示できるようになります。

    下記のように設定してみたのですが、カーソル表示されませんでした。

    InterValTypeをSeconds、DateTimeなどにしても表示されませんでした。

    何か設定が抜けているのだと思いますが、思い当たるところありますでしょうか?

    度々申し訳ありませんが、ご教授いただけないでしょうか。よろしくお願いいたします。

    chart1.ChartAreas[0].AxisX.Interval = 1.0d; //1分間隔

    chart1.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Minutes

    2017年7月24日 7:54
  • IntervalやIntervalTypeはチャート関連のそこかしこのクラスにありますが、私が指摘したのは .CursorX のInterval/IntervalTypeです。
    2017年7月24日 8:38
  • Hongliang様

    大変失礼しました。CursorXのIntervalTypeを合わせることでカーソル表示できました。

    ありがとうございました!

    2017年7月24日 9:21