1

こんにちは私はチャートポイントにクリックイベントを追加しようとしていますが、チャートをクリックすると次のエラーが発生します「オブジェクト参照がオブジェクトのインスタンスに設定されていません」

これが私のコードです

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
4

1 に答える 1

1

マウス カーソルがコントロールの上にある場合、コントロールのみがイベントを受け取りますが、フォームは受け取りません (回避策については、たとえば次の質問を参照してください: Winforms : Controls ではなくメイン フォームで最初にマウス イベントをインターセプトする)。

そのForm1_MouseDownため、発火せず、resultまだ.NothingChart1_Click

回避策は次のようになります。

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
于 2012-07-16T14:35:55.920 に答える