Ok.. I found the solution.
Apparently nothing is wrong with the variable that I am declaring. It's just the difference in the way that VB and VB.Net handles things.
In VB6, I used to set the Startup form to the splash screen and start using it. After 2-3 seconds, I'd unload the splash screen and move to the main form.
Not in VB.Net. In VB.Net when you destroy the startup object (form, or sub main), the entire program thread finishes. That's why the entire program was unloading when I tried to change forms, and the same problem was present even in sub main.
The solution is this..
1. Show a form using Showdialog in Sub Main instead of show.
2. Show the splash screen before the Initializecomponents call of the main form.
Posted this just to help others who might be facing the same problem.
Cheerios