From the votes for my comment, I think I will send it as an answer. I would not encourage using Form.Opacity = 0 . Despite the fact that you can disable the form to prevent accidental interaction, I would think that the transparent form overlays other windows and confuses the user about why he cannot interact with the windows behind your transparent one.
As for getcha for Form.Hide() , I usually queued the form's response so that when the form returns to the view (or visibility), it goes through the queue for processing actions (i.e. changing the FormState). Changing the shape while hiding it can also really confuse the user.
source share