If you want to know where your thread is comming from, you can place a break point in the method you know are being called (where the error is generated), open the Threads and Stack Trace windows in VS and see what initiated the call to begin with.
Even though the code is located in your Form class, the caller still desides which thread the call is executed in. That's why, as Oskar stated, you have to check if you need to Invoke
to the main thread. There are tons of examples on how to do this, just Google InvokeRequired
and go from there.
Let me know if you need an example.