【发布时间】:2019-10-03 08:30:49
【问题描述】:
我将在 Windows 窗体应用程序中使用 c# 绘制图表。我需要在折线图上画一个圆圈,并在一个标签上显示这个数据点值,当鼠标移到图表区域上时,该标签离鼠标指针的 x 轴最近的数据点。
我写了一段代码如下......
private void Chart1_MouseMove(object sender, MouseEventArgs e)
{
HitTestResult result = Chart1.HitTest(e.X, e.Y);
DataPoint nearestPoint = null;
if (prevPosition!=null)
{
Chart1.Series[0].Points[prevPosition.PointIndex].MarkerStyle = MarkerStyle.None;
}
if (result.ChartElementType == ChartElementType.DataPoint)
{
string xValue = DateTime.FromOADate(Chart1.Series[0].Points[result.PointIndex].XValue).ToString("yyyy/MM/dd");
string yValue = Convert.ToString(Chart1.Series[0].Points[result.PointIndex].YValues[0]);
Chart1.Series[0].Points[result.PointIndex].MarkerStyle = MarkerStyle.Circle;
Chart1.Series[0].Points[result.PointIndex].MarkerSize = 7;
Chart1.Series[0].Points[result.PointIndex].MarkerColor = Color.Green;
label1.Text = "Date:" + xValue;
label2.Text = "Price:" + yValue;
prevPosition = result;
}
但是当鼠标移动到所描绘的线附近时,此代码会显示值和相应的圆圈。当鼠标远离线条但在图表区域内时,它不显示圆圈和值。我需要在最靠近鼠标指针 X 轴的线点上画圆,并在标签上显示此数据
【问题讨论】: