AI智能
改变未来

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 进行判断。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » C# chart控件中游标随着鼠标移动