Winform中设置ZedGraph鼠标悬浮显示距离最近曲线上的点的坐标值和X轴与Y轴的标题

本是古典 何须时尚 2023-10-08 09:48 102阅读 0赞

场景

Winform中设置ZedGraph鼠标双击获取距离最近曲线上的点的坐标值:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102466406

现在要实现鼠标悬浮时显示距离最近曲线上的点的横纵坐标和X轴和Y轴的标题。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JBREFPX0xJVU1BTkdfUUlaSEk_size_16_color_FFFFFF_t_70

注:

博客主页:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

在包含ZedGraph控件的窗体的load方法中执行初始化zedGraph的方法,在初始化的方法中对鼠标悬浮事件重新绑定。

  1. zgc.CursorValueEvent -= zgc_CursorValueEvent; //显示焦点值事件
  2. zgc.CursorValueEvent += zgc_CursorValueEvent; //显示焦点值事件

然后在显示焦点值事件中

  1. private static string zgc_CursorValueEvent(ZedGraphControl sender, GraphPane pane, Point mousePt)
  2. {
  3. //获取ZedGraphControl对象
  4. ZedGraphControl zgc = sender as ZedGraphControl;
  5. if (zgc != null)
  6. {
  7. //声明曲线对象
  8. CurveItem nearstCurve;
  9. int i;
  10. Double y = 0.0;
  11. string z = String.Empty;
  12. string xTitle = String.Empty;
  13. string yTtile = String.Empty;
  14. try
  15. {
  16. //获取距离最近的曲线
  17. zgc.GraphPane.FindNearestPoint(mousePt, out nearstCurve, out i);
  18. if (nearstCurve != null && nearstCurve.Points.Count > i && nearstCurve.Points[i] != null)
  19. {
  20. //获取举例最近的点的Tag,在生成曲线时使用Tag存储的X轴的信息
  21. z = nearstCurve.Points[i].Tag.ToString();
  22. //获取当前pane面板的XAxis的标题的文本内容
  23. xTitle = zgc.GraphPane.XAxis.Title.Text;
  24. //获取当前pane面板的YAxis的标题的文本内容,通过nearstCurve.YAxisIndex获取当前举例最近的曲线所对应的Y轴的Index
  25. yTtile = zgc.GraphPane.YAxisList[nearstCurve.YAxisIndex].Title.Text;
  26. y = nearstCurve.Points[i].Y;
  27. }
  28. }
  29. catch(Exception ex)
  30. {
  31. }
  32. return "X-" + xTitle + ": " + z + " Y-" + yTtile +": "+ y.ToString();
  33. }
  34. else
  35. {
  36. return String.Empty;
  37. }
  38. }

发表评论

表情:
评论列表 (有 0 条评论,102人围观)

还没有评论,来说两句吧...

相关阅读