Hiding won't help you much, will generate other problems. You should understand that you practically always need a main windows. Its behavior is somewhat different from others. For example, if you close main window, the whole application closes. There are other good reasons to keep you main form operational at all times. And you cannot really change the main form. Which form is main? The one used in the call to
Application.Run
.
You have about two options. First, consider this:
void Main(string[] args) {
bool skipWebbrowseWindow =
if (skipWebbrowseWindow)
Application.Run(new MyGameForm())
else
Application.Run(new MyIntroForm());
}
(Oh, sorry the C# sample, you hope you can easily translate it into VB.NET. When you look for help in .NET, you need to know at least some C#…)
I think better option is this: work only with one form at all times. (However, I don't count if you have few modal forms/dialogs, they are just fine.) I think this option is much, much better. What you planned to be forms should be controls on you only form, typically panels, but they can be also tab pages or something else. And the look of your main form will depend on which of those panels are on top and visible. You can arrange two or more in parallel, both visible, of you can show only one at a time. Here hiding will serve you well. And the navigation between those wonna-be-forms is all yours, you won't depend on weird Z-order of the Windows desktop. All application will be activated at once (with forms, you would need to use
Owner
properties of all non-mail forms, forgetting this feature by many make application Z-order really ugly, please try). There are more reasons to design it all in just one form. Especially for gaming, where people don't have time to mess up with the desktop. Honestly, choose this approach.
—SA