我试图在一个小显示器中显示图表数据的 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];
}
}
- 1 回答
- 0 关注
- 280 浏览
添加回答
举报
0/150
提交
取消