为了账号安全,请及时绑定邮箱和手机立即绑定

图表:PixelPositionToValue 在查找 x、y 坐标时不准确

图表:PixelPositionToValue 在查找 x、y 坐标时不准确

C#
杨__羊羊 2023-05-13 16:02:54
我试图在一个小显示器中显示图表数据的 X 和 Y 坐标。一切正常,但显示的数据不准确。这是下面的代码: var results = chart1.HitTest(e.X, e.Y, false, ChartElementType.PlottingArea);            foreach (var result in results)            {                if (result.ChartElementType == ChartElementType.PlottingArea)                {                    yValue = chart1.ChartAreas[0].AxisY2.PixelPositionToValue(e.Y);                    xValue = chart1.ChartAreas[0].AxisX2.PixelPositionToValue(e.X);                }            }            if (OverlapcheckBox1.Checked)            {                int val = Convert.ToInt16(yValue / 24);                yValue = yValue - 24 * val;            }            if (Cursor1checkBox.Checked && ClickMouse)            {                V1textBox1.Text = string.Concat(string.Concat(yValue).ToString());            }            if (Cursor2checkBox.Checked && ClickMouse)            {                V2textBox2.Text = string.Concat(string.Concat(yValue).ToString());            }该图像显示光标位于 10,但 V1 中的值为 9.88 和图像:图像
查看完整描述

1 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

除非您的鼠标具有惊人的准确性,否则您永远不会看到精确的 10.000。你可以四舍五入:


private void Chart1_MouseClick(object sender, MouseEventArgs e) {

    double yValue = chart1.ChartAreas[0].AxisY.PixelPositionToValue(e.Y);

    yValue = Math.Round(yValue, 0);

}

或者您希望在光标点击位置附近找到数据点?


private void Chart1_MouseClick(object sender, MouseEventArgs e) {


    HitTestResult result = chart1.HitTest(e.X, e.Y);


    if (result.ChartElementType == ChartElementType.DataPoint) {

        DataPoint point = (DataPoint)result.Object;

        double yValue = point.YValues[0];

    }

}


查看完整回答
反对 回复 2023-05-13
  • 1 回答
  • 0 关注
  • 280 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信