Reputation: 26766
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
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
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