title: C# Winforms: selective disabling of UI whilst a thread runs
body: <p>I have a quite complex form that presents an option to run a script (our own type). Whilst it runs, I don't want to lock the UI completely, so I would like to start it in a thread. So far so good, but to prevent the user messing with things I need to selectively disable parts of the UI. I could recursively set Enabled = false and then Enabled = true when the thread ends. But this ignores the state of the control at the time of running (ie controls which were disabled for various reasons would be incorrectly re-enabled). Short of building a tree of booleans, is there some other way to block input (such as the GlassPane type in Java)?</p>