3

C# Windows フォーム プロジェクト内でチャート コントロールを使用しています。私が望むのは、マウスがチャート上を移動するときに、点線がマウスに追従するようにすることです。カーソルまたはデータ ポイントを中心に線を引くことができます。この時点で、私は柔軟です。以下に、探しているもののスクリーンショットを含めました。
カーソル上の黒い点線

ここに黒い点線が表示されます (スクリーン グラブのため、カーソルは表示されません)。私はすでに mouseMove イベントを持っていますが、これを機能させるためにその mousemove に含めるコードがわかりません (現在、マウスをクリックしたときにのみ機能しますが、CursorX.IsUserSelection を有効にしているからだと思います)。チャート作成関数で既に線をフォーマットしていますが、CursorX.LineEnable 関数などはありますか? 私は何も見つけることができませんでした。ペイントされたオブジェクトでこれを達成できることは知っていますが、面倒なことは避けたいと思っていました。
前もって感謝します!以下に行の書式を含めます。これはチャート作成セクションにあります。

        chData.ChartAreas[0].CursorX.IsUserEnabled = true;
        chData.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
        chData.ChartAreas[0].CursorY.IsUserEnabled = true;
        chData.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;

        chData.ChartAreas[0].CursorX.Interval = 0;
        chData.ChartAreas[0].CursorY.Interval = 0;
        chData.ChartAreas[0].AxisX.ScaleView.Zoomable = true;
        chData.ChartAreas[0].AxisY.ScaleView.Zoomable = true;

        chData.ChartAreas[0].CursorX.LineColor = Color.Black;
        chData.ChartAreas[0].CursorX.LineWidth = 1;
        chData.ChartAreas[0].CursorX.LineDashStyle = ChartDashStyle.Dot;
        chData.ChartAreas[0].CursorX.Interval = 0;
        chData.ChartAreas[0].CursorY.LineColor = Color.Black;
        chData.ChartAreas[0].CursorY.LineWidth = 1;
        chData.ChartAreas[0].CursorY.LineDashStyle = ChartDashStyle.Dot;
        chData.ChartAreas[0].CursorY.Interval = 0;
4

1 に答える 1

10

チャートの MouseMove イベント ハンドラー内で、次の操作を実行してカーソルを移動できます。

private void chData_MouseMove(object sender, MouseEventArgs e)
{
    Point mousePoint = new Point(e.X, e.Y);

    Chart.ChartAreas[0].CursorX.SetCursorPixelPosition(mousePoint, true);
    Chart.ChartAreas[0].CursorY.SetCursorPixelPosition(mousePoint, true);

    // ...
}

これは SetCursorPixelPosition メソッドのドキュメントです: http://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.cursor.setcursorpixelposition.aspx

于 2013-01-23T19:03:03.323 に答える