Q:

Easiest way to disable Form while worker thread spins?

When I have a WinForms app that needs to do some heavy lifting in the background but only ever one task at at time (the usual), the general procedure is the same:

Set UI to "working" status (disable button to prevent subsequent presses, display operation progress, maybe pop up separate status form on top of main form...)
newThread.Start();
Set UI back to user-interactable state when finished or canceled

The problem is, I always end up wiring it all up by hand.  If I go the route of disabling certain buttons, making the form confirm when the user tries to close it, etc... there's really no way around that, since each form is different.  But sometimes it's just not worth it to spend the time writing all those specifics and all I want to do is stop the user from clicking anything and show some visual indication that the application is working.
Is there an easy way to set the UI to a non-interactable "working" status, sort of a like a lightbox does in web interfaces?
Criteria:

Least amount of code wins. (I'm lazy.)
User should no longer be able to interact with the form.

Form can be completely non-interactable, partially non-interactable, whatever keeps the user relatively contained.
Option to cancel operation is not required... that can be added later depending on how much time I want to spend on user experience.

If only there were a UI counterpart to BackgroundWorker...

A:

yourForm.Enabled = false;

I don't think it can be made shorter ;)
This will disable all controls on the form, but you can still update a progress bar or a label if necessary.

