C# Teechart 鼠标悬停 显示数据

Posted 我的技术空间

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# Teechart 鼠标悬停 显示数据相关的知识,希望对你有一定的参考价值。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
            this.tChart1.Series[0].Add(1, 2);
            this.tChart1.Series[0].Add(2, 6);
            this.tChart1.Series[0].Add(6, 3);
        }
        private double xval;
        private void cursorTool1_Change(object sender, Steema.TeeChart.Tools.CursorChangeEventArgs e)
        {
            try
            {
                xval = e.XValue;
                tChart1.Header.Text = "";
                for (int i = 0; i < tChart1.Series.Count; i++)
                    if (tChart1.Series[i] is Steema.TeeChart.Styles.Custom)
                    {
                        tChart1.Header.Text += tChart1.Series[i].Title + ": Y(" + e.XValue.ToString("0.00") + ")= ";
                        tChart1.Header.Text += InterpolateLineSeries(tChart1.Series[i] as Steema.TeeChart.Styles.Custom, e.XValue).ToString("0.00") + "\r\n";
                    }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }



        private double InterpolateLineSeries(Steema.TeeChart.Styles.Custom series, double xvalue)
        {
            return InterpolateLineSeries(series, series.FirstVisibleIndex, series.LastVisibleIndex, xvalue);
        }

        /// <summary>
        /// Calculate y=y(x) for arbitrary x. Works fine only for line series with ordered x values.
        /// </summary>
        /// <param name="series"></param>
        /// <param name="firstindex"></param>
        /// <param name="lastindex"></param>
        /// <param name="xvalue"></param>
        /// <returns>y=y(xvalue) where xvalue is arbitrary x value.</returns>
        private double InterpolateLineSeries(Steema.TeeChart.Styles.Custom series, int firstindex, int lastindex, double xvalue)
        {
            try
            {
                int index;
                for (index = firstindex; index <= lastindex; index++)
                {
                    if (index == -1 || series.XValues.Value[index] > xvalue) break;
                }
                // safeguard
                if (index < 1) index = 1;
                else if (index >= series.Count) index = series.Count - 1;
                // y=(y2-y1)/(x2-x1)*(x-x1)+y1
                double dx = series.XValues[index] - series.XValues[index - 1];
                double dy = series.YValues[index] - series.YValues[index - 1];
                if (dx != 0.0) return dy * (xvalue - series.XValues[index - 1]) / dx + series.YValues[index - 1];
                else return 0.0;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return 0.0;
            }
        }









    }
}

  

以上是关于C# Teechart 鼠标悬停 显示数据的主要内容,如果未能解决你的问题,请参考以下文章

c#中把鼠标悬停到label标签上显示文字怎么实现

C# winfrom程序可以实现按钮的鼠标悬停变色,离开恢复,按下时变成黑色并一直保持吗

当鼠标悬停在控件的指定区域时如何更改鼠标光标?使用 c#

Bootstrap 4工具提示使用Datatables.net卡住了

为啥鼠标悬停数据消失

收藏|分享前端开发常用代码片段