there is already a question on this - Why is there a default instance of every form in VB.Net but not in C#?
It seems it's a vb specific syntax - in c# you'd certainly need to instantiate a new instance of the form, and even in vb I'd suggest that would be best practice...after all you are dealing with an instance of the form. I'm actually surprised that vb.net lets you call show as a static method on a form...it just doesn't compute for me