【问题标题】:vb.net chart control point onclick eventvb.net图表控制点onclick事件
【发布时间】:2012-07-16 03:43:15
【问题描述】:

您好,我正在尝试向图表点添加点击事件,但是当我点击图表“对象引用未设置为对象的实例”时出现以下错误

这是我的代码

Private Sub Chart1_Click(sender As Object, e As System.EventArgs) Handles Chart1.Click
    Try
        Dim pointindex As Integer
        If result.ChartElementType = ChartElementType.DataPoint Then
            pointindex = result.PointIndex
        End If
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub

Private Sub Form1_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
    result = Chart1.HitTest(e.X, e.Y)
End Sub

【问题讨论】:

  • 我的猜测是表单没有收到鼠标按下事件,因此未设置结果导致提到的错误。这是您可以通过断点或调试输出轻松检查的内容。如果这确实是问题所在,您可以在Chart1_Click 中使用Cursor.Position
  • 太棒了。我将发布一个更具描述性的答案以供将来参考。

标签: vb.net events charts


【解决方案1】:

如果鼠标光标位于控件上方,则只有控件会接收事件,但不会接收表单(有关变通方法,请参见例如此问题:Winforms : Intercepting Mouse Event on Main Form first, not on Controls)。

所以Form1_MouseDown 不会触发,resultChart1_Click 中仍然是Nothing

解决方法可能如下所示:

Private Sub Chart1_Click(sender As Object, e As System.EventArgs) Handles Chart1.Click
    Try
        Dim pointindex As Integer
        Dim result As HitTestResult
        result = Chart1.HitTest(Cursor.Position.X, Cursor.Position.Y)
        If result.ChartElementType = ChartElementType.DataPoint Then
            pointindex = result.PointIndex
        End If
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 2012-03-15
    • 1970-01-01
    相关资源
    最近更新 更多