.net – How to find the main() entry point in a VB.Net winforms app

.netvb.netwinforms

When I create a WinForms app in C#, the output type is Windows Application and I get a program.cs with a static void Main() which I can use to handle command-line parameters, etc…

However, when I create an equivalent project for VB, the application type is Windows Forms Application and I'm forced to pick a startup form.

Is there an equivalent mechanism to run my own code before I decide which form to display in VB.Net? I'm assuming the same code exists but is auto-generated and hidden somewhere? If so, where?

Best Solution

In VB you'll need to create your sub main by hand as it were so what I generally do is create a new Module named Program.

Within that as a very basic setup you'll need to add the following code.

Public Sub Main()

    Application.EnableVisualStyles()
    Application.SetCompatibleTextRenderingDefault(False)
    Application.Run(New Form1)

End Sub

Once you've done that go to the application tab of the project's settings and uncheck the 'Enable Application framework' setting and then from the drop down under Startup object select your new Sub Main procedure.

You can then put any start-up code that you want to run before your program opens its main form before the Application.Run line.

Hope that helps