使用鼠标悬停更新图表系列工具提示
Update Chart series's ToolTip using MouseHover
我正在编写一个绘制折线图的应用程序。它从 CSV 文件中获取一行并将其传递给一个方法(有几百行):
Private Function plotChart(ByVal sortedRow As String())
count = sortedRow(8) 'Represents X value
Dim spcRawPoint = sortedRow(7) 'Represents Y value
Try
Me.Chart1.Series("Result").Points.AddXY(count, spcPoint)
Me.Chart1.Series("Result").ToolTip = "Value: " + spcRawPoint + Environment.NewLine + "Date: " + count.ToString
Catch ex As Exception
MessageBox.Show(ErrorToString)
End Try
End Function
当我将鼠标悬停在图表的系列上时,我希望它显示相应的 X(小数)和 Y(日期时间)值。使用上述方法,绘制图表后,当我将鼠标悬停在系列上时,我看到显示的 X 和 Y 值在系列上的所有点都是相同的。
我在互联网上进行了一些搜索,看到有人建议在我的图表中包含 MouseMove 或 MouseHover 事件。我这样做了:
Private Sub Chart1_MouseHover(ByVal sender As System.Object, ByVal e As ToolTipEventArgs) Handles Chart1.MouseHover
If e.HitTestResult.PointIndex >= 0 Then
If e.HitTestResult.ChartElementType = DataVisualization.Charting.ChartElementType.DataPoint Then
Dim Xvalue As Decimal = e.X
Dim Yvalue As DateTime = Convert.ToDateTime(e.Y)
Me.Chart1.Series("Result").ToolTip = "Value: " + Xvalue + Environment.NewLine + "Date: " + Yvalue.ToString
End If
End If
End Sub
代码可以构建,但是当我运行时出现异常:
System.InvalidCastException was unhandled
HResult=-2147467262
Message=Unable to cast object of type 'System.EventArgs' to type 'System.Windows.Forms.DataVisualization.Charting.ToolTipEventArgs'.
我知道这是一个转换问题,但我不知道如何解决它。
我需要的是当我将鼠标悬停在图表区域提到的系列时,工具提示应显示 X 和 Y 值。
我设法修复了 MouseHover 事件:
Private Sub Form1_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.MouseHover
Me.Chart1.Series("Result").ToolTip = "#VALY{F}\n#VALX"
End Sub
现在,只要将鼠标悬停在图表系列上,我就可以看到 X 和 Y 值。
我正在编写一个绘制折线图的应用程序。它从 CSV 文件中获取一行并将其传递给一个方法(有几百行):
Private Function plotChart(ByVal sortedRow As String())
count = sortedRow(8) 'Represents X value
Dim spcRawPoint = sortedRow(7) 'Represents Y value
Try
Me.Chart1.Series("Result").Points.AddXY(count, spcPoint)
Me.Chart1.Series("Result").ToolTip = "Value: " + spcRawPoint + Environment.NewLine + "Date: " + count.ToString
Catch ex As Exception
MessageBox.Show(ErrorToString)
End Try
End Function
当我将鼠标悬停在图表的系列上时,我希望它显示相应的 X(小数)和 Y(日期时间)值。使用上述方法,绘制图表后,当我将鼠标悬停在系列上时,我看到显示的 X 和 Y 值在系列上的所有点都是相同的。
我在互联网上进行了一些搜索,看到有人建议在我的图表中包含 MouseMove 或 MouseHover 事件。我这样做了:
Private Sub Chart1_MouseHover(ByVal sender As System.Object, ByVal e As ToolTipEventArgs) Handles Chart1.MouseHover
If e.HitTestResult.PointIndex >= 0 Then
If e.HitTestResult.ChartElementType = DataVisualization.Charting.ChartElementType.DataPoint Then
Dim Xvalue As Decimal = e.X
Dim Yvalue As DateTime = Convert.ToDateTime(e.Y)
Me.Chart1.Series("Result").ToolTip = "Value: " + Xvalue + Environment.NewLine + "Date: " + Yvalue.ToString
End If
End If
End Sub
代码可以构建,但是当我运行时出现异常:
System.InvalidCastException was unhandled
HResult=-2147467262
Message=Unable to cast object of type 'System.EventArgs' to type 'System.Windows.Forms.DataVisualization.Charting.ToolTipEventArgs'.
我知道这是一个转换问题,但我不知道如何解决它。 我需要的是当我将鼠标悬停在图表区域提到的系列时,工具提示应显示 X 和 Y 值。
我设法修复了 MouseHover 事件:
Private Sub Form1_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.MouseHover
Me.Chart1.Series("Result").ToolTip = "#VALY{F}\n#VALX"
End Sub
现在,只要将鼠标悬停在图表系列上,我就可以看到 X 和 Y 值。