C#MSChart添加悬停线

时间:2018-06-11 11:40:26

标签: c# .net winforms mschart mousehover

当您点击mschart时会出现一条红线,是否有可能在将鼠标悬停在图表上时添加此行?我想在悬停时使这条线可见,并在线下或类似的东西下添加悬停数据点的结果。到目前为止,我只发现了工具提示,并且能够使用它并在悬停在其上时显示数据点的值。
如果你不知道我在说什么线:
enter image description here

1 个答案:

答案 0 :(得分:2)

您可以处理图表的MouseHover事件并获取数据点,然后设置光标位置SetCursorPosition

private void chart1_MouseHover(object sender, EventArgs e)
{
    var p = chart1.PointToClient(MousePosition);
    chart1.ChartAreas[0].CursorX.SetCursorPixelPosition(p, true);
}

您还需要处理MouseMove并调用受控制的ResetMouseEventArgs方法,以便按预期提升MouseHover

private void chart1_MouseMove(object sender, MouseEventArgs e)
{
    var ResetMouseEventArgs= 
        chart1.GetType().GetMethod("ResetMouseEventArgs",
        System.Reflection.BindingFlags.NonPublic |
        System.Reflection.BindingFlags.Instance);
    ResetMouseEventArgs.Invoke(chart1, null);
}