C#chart 标注折线上某点的X,Y值

C#chart 标注折线上某点的X,Y值

6个通道测量温度,得到如图1所示曲线。纵坐标是温度,横坐标是时间。
图1,5通道温度测试曲线

需要标注多个关键点,如图2所示。

图2,标注关键温度点
先是试了:

HitTestResult mytestresult= Chart1.HitTest(e.X,e.Y);
    if (mytestresult.ChartElementType == ChartElementType.DataPoint)
    {
       int i = mytestresult.PointIndex; 
       mytestresult.Series.Points[i].ToolTip="#VAL";

试了好多,加了各种方法都没成功。最后认识到,这个是鼠标滑过时的提示,并不我想要的点击一下,就提示,而且一直存在。

成功的代码

最后经过查找资料,反复琢磨终于成功了,代码如下。

 HitTestResult mytestresult= Chart1.HitTest(e.X,e.Y);
             if (mytestresult.ChartElementType == ChartElementType.DataPoint)
             {
                int i = mytestresult.PointIndex;
                 /*DataPoint dp = mytestresult.Series.Points[i];
               Chart1.Text = string.Format("次数:{0};数值:{1:F3} ", dp.XValue, dp.YValues[0]);*/


                    if (wdbz.Checked)
                {
                   // mytestresult.Series.Points[i].ToolTip="#VAL";
                   //mytestresult.Series.Points[i].MarkerSize = 5;
                   mytestresult.Series.Points[i].MarkerStyle = MarkerStyle.Diamond;
                   mytestresult.Series.Points[i].MarkerColor = Color.Red;
                   mytestresult.Series.Points[i].MarkerBorderWidth = 3;
                    mytestresult.Series.Points[i].MarkerSize = 10;
                    mytestresult.Series.Points[i].Label ="序号:" + Convert.ToString(i) + "\r\n" + "温度:" + "#VAL";
                    mytestresult.Series.Points[i].IsValueShownAsLabel = true;
  • 7
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值