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

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值