图表中的光标线

时间:2012-12-13 21:46:33

标签: c# charts

我在C#windows窗体项目中使用图表控件。我想要的是当它在图表上移动时,我的鼠标会跟随虚线。我可以使线条以光标或数据点为中心;在这一点上,我很灵活。我已经在屏幕截图中显示了我正在寻找的内容。
Black dotted lines on cursor

所以在这里你可以看到黑色虚线(光标没有出现,因为它是一个屏幕抓取)。我已经有了一个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;

1 个答案:

答案 0 :(得分:7)

在图表的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