Ok changed all that now i get this error where i got an error before, ok this is my code so far. The error is near the bottom. the error is: Object reference not set to an instance of an object.
Code:
    Private Sub threadfunc()
        Dim obj As Object = Me.Invoke(d)
        Dim p As Point = CType(obj, Point)
        While running
            Dim Rclick As Boolean = KeyStatus(Keys.RButton)
            Dim Lclick As Boolean = KeyStatus(Keys.LButton)
            If CollectingStarted = True Then
                If Lclick Then
                    If cAmount = 1 Then
                        i = 1
                        Me.Invoke(updatebox, New Object() {"X" & i.ToString, "Y" & i.ToString, MousePosition.X.ToString, MousePosition.Y.ToString})
                        Threading.Thread.Sleep(500)
                        cAmount = 2
                    ElseIf cAmount = 2 Then
                        i = 2
                        Me.Invoke(updatebox, New Object() {"X" & i.ToString, "Y" & i.ToString, MousePosition.X.ToString, MousePosition.Y.ToString})
                        Threading.Thread.Sleep(500)
                        cAmount = 3
                    ElseIf cAmount = 3 Then
                        i = 3
                        Me.Invoke(updatebox, New Object() {"X" & i.ToString, "Y" & i.ToString, MousePosition.X.ToString, MousePosition.Y.ToString})
                        Threading.Thread.Sleep(500)
                        cAmount = 4
                    ElseIf cAmount = 4 Then
                        i = 4
                        Me.Invoke(updatebox, New Object() {"X" & i.ToString, "Y" & i.ToString, MousePosition.X.ToString, MousePosition.Y.ToString})
                        Threading.Thread.Sleep(500)
                        cAmount = 5
                    ElseIf cAmount = 5 Then
                        i = 5
                        Me.Invoke(updatebox, New Object() {"X" & i.ToString, "Y" & i.ToString, MousePosition.X.ToString, MousePosition.Y.ToString})
                        Threading.Thread.Sleep(500)
                        cAmount = 6
                    ElseIf cAmount = 6 Then
                        i = 6
                        Me.Invoke(updatebox, New Object() {"X" & i.ToString, "Y" & i.ToString, MousePosition.X.ToString, MousePosition.Y.ToString})
                        Threading.Thread.Sleep(500)
                        cAmount = 7
                    ElseIf cAmount = 7 Then
                        i = 7
                        Me.Invoke(updatebox, New Object() {"X" & i.ToString, "Y" & i.ToString, MousePosition.X.ToString, MousePosition.Y.ToString})
                        Threading.Thread.Sleep(500)
                        cAmount = 8
                    ElseIf cAmount = 8 Then
                        i = 8
                        Me.Invoke(updatebox, New Object() {"X" & i.ToString, "Y" & i.ToString, MousePosition.X.ToString, MousePosition.Y.ToString})
                        Threading.Thread.Sleep(500)
                        cAmount = 9
                    ElseIf cAmount = 9 Then
                        i = 9
                        Me.Invoke(updatebox, New Object() {"X" & i.ToString, "Y" & i.ToString, MousePosition.X.ToString, MousePosition.Y.ToString})
                        Threading.Thread.Sleep(500)
                        cAmount = 10
                    ElseIf cAmount = 10 Then
                        i = 10
                        Me.Invoke(updatebox, New Object() {"X" & i.ToString, "Y" & i.ToString, MousePosition.X.ToString, MousePosition.Y.ToString})
                        Threading.Thread.Sleep(500)
                        cAmount = 11
                    ElseIf cAmount = 11 Then
                        i = 11
                        Me.Invoke(updatebox, New Object() {"X" & i.ToString, "Y" & i.ToString, MousePosition.X.ToString, MousePosition.Y.ToString})
                        Threading.Thread.Sleep(500)
                        cAmount = 12
                    ElseIf cAmount = 12 Then
                        i = 12
                        Me.Invoke(updatebox, New Object() {"X" & i.ToString, "Y" & i.ToString, MousePosition.X.ToString, MousePosition.Y.ToString})
                        Threading.Thread.Sleep(500)
                        cAmount = 13
                    ElseIf cAmount = 13 Then
                        i = 13
                        Me.Invoke(updatebox, New Object() {"X" & i.ToString, "Y" & i.ToString, MousePosition.X.ToString, MousePosition.Y.ToString})
                        Threading.Thread.Sleep(500)
                        cAmount = 14
                    ElseIf cAmount = 14 Then
                        i = 14
                        Me.Invoke(updatebox, New Object() {"X" & i.ToString, "Y" & i.ToString, MousePosition.X.ToString, MousePosition.Y.ToString})
                        Threading.Thread.Sleep(500)
                        cAmount = 15
                    ElseIf cAmount = 15 Then
                        i = 15
                        Me.Invoke(updatebox, New Object() {"X" & i.ToString, "Y" & i.ToString, MousePosition.X.ToString, MousePosition.Y.ToString})
                        Threading.Thread.Sleep(500)
                        cAmount = 16
                    End If
                End If
                If Rclick Then

                End If
            End If
        End While

    Public Sub UpdateTB(ByVal TB1 As String, ByVal TB2 As String, ByVal x As String, ByVal y As String)
        Dim txtbox1 As TextBox = CType(Me.Controls(TB1), TextBox)

        Dim txtbox2 As TextBox = CType(Me.Controls(TB2), TextBox)

        txtbox1.Text = x   <--- ERROR: Object reference not set to an instance of an object.

        txtbox2.Text = y   <--- ERROR: Object reference not set to an instance of an object.
    End Sub