C# MsChart 类似十字光标/交叉线 跟随鼠标移动功能 的优化 [问题点数:88分]

@http://bbs.csdn.net/topics/390744105

搜索了很多,自己也尝试了很多,目前还没很好的解决方法,发帖求助。
想实现类似CAD制图那种十字光标跟随的效果,其实MsChart是带这功能的
设置ChartAre属性:

 _chartArea.CursorX.IsUserEnabled = true;
 _chartArea.CursorY.IsUserEnabled = true;


鼠标点击在绘图区域内的时候,就可以看到想要的效果,通过以下代码实现跟随鼠标移动
对Chart添加MouseMove事件,在响应方法内实现如下代码:

   private void Chart_MouseMove(object sender, MouseEventArgs e)
       {  
           _currentPointX = e.X;
           _currentPointY = e.Y;
 
           //MsChart.Refresh();没啥效果
            
           _chartArea.CursorX.SetCursorPixelPosition(new PointF(_currentPointX, _currentPointY), true);
           _chartArea.CursorY.SetCursorPixelPosition(new PointF(_currentPointX, _currentPointY), true);
           //Application.DoEvents(); 使用此方法当有线程操作时会引发异常
       }


通过以上方式,其实已经实现了十字光标跟随鼠标移动的功能,数据量小的时候效果也不错,当数据量过大的时候,会明显的感觉到卡顿。
但是使用时发现一个特点,当开启曲线缩放的功能时,就是鼠标点击按下拖动时(_chartArea.CursorX.IsUserSelectionEnabled = isallow;)

十字光标也会跟着鼠标走,而且不会卡顿。
想看看点击按下时发生了什么事情,但是源代码时没有的,只能望洋兴叹。
也尝试过自己画两条线上去,鉴于个人能力,实在是性能和效果不堪入目。
请问大家有什么好的解决方法?

你可能感兴趣的:(C#,WinForm)