Basic
Basic

Reputation: 26766

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

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?

Upvotes: 36

Views: 34256

Answers (2)

Jeff
Jeff

Reputation: 238

If your application has only one form you may simply start typing Sub New() and Visual Studio will autogenerate this method stub which executes first. No project setting changes required.

Public Sub New()
    MyBase.New()

    'This call is required by the Windows Form Designer.
    InitializeComponent()

    'Add any initialization after the InitializeComponent() call
    '==> Put your pre-execution steps here.
End Sub

Upvotes: 0

Dom Sinclair
Dom Sinclair

Reputation: 2528

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

Upvotes: 57

Related Questions