C# chart控件中游标随着鼠标移动

chart控件中游标如何随着移动?

思路很简单,只需要在鼠标进入chart控件时,获取鼠标的位置,然后将数值赋给游标的position属性。

具体实现方法如下:

  1. 选中chart控件、F4进入属性窗口,在事件中创建MouseMove。
  2. 获取鼠标位置(2、3、4、5步骤的代码都是在MouseMove中)
double XVuale = chart1.ChartAreas[0].AxisX.PixelPositionToValue(e.X);
double YVuale = chart1.ChartAreas[0].AxisY.PixelPositionToValue(e.Y);
  1. 对鼠标位置进行限制。这里只针对Y进行限制,如果想添加的游标是X方向的就要限制X的范围。限制的主要原因是 ,chart控件中鼠标的位置范围要大于XY轴的数值范围。
if (YVuale > chart1.ChartAreas[0].AxisY.Maximum)
       	{
           YVuale = chart1.ChartAreas[0].AxisY.Maximum;
         }
else if (YVuale < chart1.ChartAreas[0].AxisY.Minimum)
        {
          YVuale = chart1.ChartAreas[0].AxisY.Minimum;
        }
  1. 最后一步就是将鼠标的位置传递给游标的posizion属性:
 chart1.ChartAreas[0].CursorY.Position = Trigger;

扩展:

游标总不能一直跟着鼠标动 那样的话显示的游标就是去了意义,实际上更多的情况是,游标随着鼠标移动,当移动到需要的位置时,点击一下鼠标,游标就定在那里,不再随着鼠标移动。

其实只需要对chart控件再添加一个Click事件就可以了,当然还需要一个标志位没用来限制游标的移动。具体如下:

bool AllowCursorYMove = true;//一开始允许游标移动
private void chart1_Click(object sender, EventArgs e)
{
    AllowCursorYMove = false;//点击鼠标后禁止移动
}

既然Click事件限制了游标的移动,那么在chart控件的MouseMove事件中就需要对AllowCursorYMove 进行判断。

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