This can be done, but can get a little involved. I will start by giving you a code example:
Private Sub Chart1PostPaint(ByVal sender As Object, ByVal e As System.Windows.Forms.DataVisualization.Charting.ChartPaintEventArgs)
' Make sure all series have been drawn before proceeding
If Chart1 IsNot Nothing AndAlso Chart1.Visible Then
If ZPos >= 0 Then
Dim cg As System.Windows.Forms.DataVisualization.Charting.ChartGraphics = e.ChartGraphics
' Get relative coordinates of the data point
Dim pos As System.Drawing.PointF = System.Drawing.PointF.Empty
Dim pos2 As System.Drawing.PointF = System.Drawing.PointF.Empty
pos.X = CSng(cg.GetPositionFromAxis("ChartArea1", System.Windows.Forms.DataVisualization.Charting.AxisName.X, ZPos))
'* Bottom of chart
pos.Y = CSng(cg.GetPositionFromAxis("ChartArea1", System.Windows.Forms.DataVisualization.Charting.AxisName.Y, 0))
'* Top of chart
pos2.Y = CSng(cg.GetPositionFromAxis("ChartArea1", System.Windows.Forms.DataVisualization.Charting.AxisName.Y, Chart1.ChartAreas(0).AxisY.Maximum))
'* Do not go beyond the charting area
If ZPos >= Chart1.ChartAreas(0).AxisX.Minimum And ZPos <= Chart1.ChartAreas(0).AxisX.Maximum Then
' Convert relative coordinates to absolute coordinates.
pos = cg.GetAbsolutePoint(pos)
pos2 = cg.GetAbsolutePoint(pos2)
' Draw vertical position line in red
cg.Graphics.DrawLine(System.Drawing.Pens.Red, pos.X, pos2.Y, pos.X, pos.Y)
End If
End If
End If
End Sub
With ZPos being where you want the vertical line drawn.