Say I have a form (we're talking WinForms here, by the way). Now say I have an "OK" button that, when you click it, goes off and does some processing. Let's also say that I'm a good citizen and I do that work in using a BackgroundWorker.
With me so far? Right, so while we're doing our background processing we want the cursor to turn into an hourglass, right? So we set the UseWaitCursor property to true just before we kick off the BackgroundWorker. Great, it works!
But we notice that, even though the cursor is an hourglass, you can still click stuff and interact with the window -- not a very good user experience! So we also try to set Enabled to false. But as soon as we do that, we run into a problem!
You see, if a form is disabled, it totally ignores the UseWaitCursor property! So you can either disable the window, or you can display an hour glass, but you can't do both!
A "workaround" is to not disable the whole form, but all of it's child windows. But that's a right PITA because as soon as you add a new control, you've got remember to disable it as well. I could write a helper fuction that disables everything except the form itself, but that sounds kind of silly as well.
Oh well, I guess it's just something I have to live with...