chart控件獲取鼠標點擊坐標,十字坐標跟隨——c#


方法一:鼠標點擊波形

鼠標點擊波形,顯示點擊位置的x,y值

private void chart1_MouseClick(object sender, MouseEventArgs e)  //chart1是你建的chart控件,實際名字根據你自己代碼里的命名
        {            
            HitTestResult hit = chart1.HitTest(e.X, e.Y);
            if (hit.Series != null)
            {
                var xValue = hit.Series.Points[hit.PointIndex].XValue;
                var yValue = hit.Series.Points[hit.PointIndex].YValues.First();
                textBox1.Text = string.Format("{0:F0},{1:F0}", "x:"+xValue, "y:"+yValue);//textbox1也是自己建的一個專門用來顯示的內容框,也可以用messagebox直接彈出內容
            }
            else
            {
                textBox1.Text="未點擊到波形曲線";
            }
        }

 

調用方法:

chart1.MouseClick += new MouseEventHandler(chart1_MouseClick);

 

方法二:鼠標移動到相應點位自動顯示相關數值

private void chart1_MouseMove(object sender, MouseEventArgs e)
        {
            var area = chart1.ChartAreas[0];

            double xValue = area.AxisX.PixelPositionToValue(e.X);
            double yValue = area.AxisY.PixelPositionToValue(e.Y);
            textBox1.Text = string.Format("{0:F0},{1:F0}", xValue, yValue);
        }

調用方法:

chart1.MouseMove += new MouseEventHandler(chart1_MouseMove);

 

 

繪制十字坐標:


//清空十字架
chartVoltage.Series[1].Points.Clear();
chartVoltage.Series[2].Points.Clear();
//獲取當前鼠標坐標
double cursorX = chartVoltage.ChartAreas[0].AxisX.PixelPositionToValue(e.X);
double cursorY = chartVoltage.ChartAreas[0].AxisY.PixelPositionToValue(e.Y);
//繪制豎線下半部分
chartVoltage.Series[1].Points.AddXY(cursorX, chartVoltage.ChartAreas[0].AxisY.Minimum);
//繪制豎線上半部分
chartVoltage.Series[1].Points.AddXY(cursorX, chartVoltage.ChartAreas[0].AxisY.Maximum);
//繪制橫線左半部分
chartVoltage.Series[2].Points.AddXY(chartVoltage.ChartAreas[0].AxisX.Minimum, cursorY);
//繪制橫線右半部分
chartVoltage.Series[2].Points.AddXY(chartVoltage.ChartAreas[0].AxisX.Maximum, cursorY);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM