Solved

Getting VB.NET 2008 to go to Sub Main() on startup

Posted on 2011-02-22
12
1,205 Views
Last Modified: 2012-05-11
Hello Experts -

I'm trying to get VB.NET 2008 to goto Sub Main() instead of the startup form. The reason why is that the logic in Sub Main() will determinde which form is shown.

When I put Sub Main() in a Module, VB ignores it and goes to the default startup form.

Any thoughts?
0
Comment
Question by:gbmcneil
  • 4
  • 4
  • 3
  • +1
12 Comments
 
LVL 8

Expert Comment

by:Toxacon
Comment Utility
Use the form selection logic in the startup form. Hide the startup form before it's shown during form_load. You can also make a stylish start with a splash screen which has the main form selection logic in it.
0
 

Author Comment

by:gbmcneil
Comment Utility
You are saying that I can't get VB.NET to go to my Sub Main() in a module?
0
 
LVL 17

Expert Comment

by:nepaluz
Comment Utility
You can do it IF you do not select to create a Windows Forms application.
Choose to create a class (and remember to include the system.windows.forms) when creating your forms.
0
 
LVL 8

Expert Comment

by:Toxacon
Comment Utility
You can call the Main() as any other procedure but after finishing it will go to the startup form.
0
 
LVL 85

Expert Comment

by:Mike Tomlinson
Comment Utility
You can...just go to Project --> Properties and UNCHECK the "Enable Application Framework" box.  Then you can change the "Startup Object" to "Sub Main"
0
 
LVL 8

Expert Comment

by:Toxacon
Comment Utility
If you disable the Application Framework, you have to programmatically take care of visual styles, proper shutdown/form handling etc...
0
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 
LVL 85

Accepted Solution

by:
Mike Tomlinson earned 250 total points
Comment Utility
Re-reading the question, he has:

    "The reason why is that the logic in Sub Main() will determinde which form is shown."

To change the startup form, use the Application.Startup() event (Project --> Properties --> "View Application Events" button in the bottom right.)

From the Startup() event, you can put your logic in and change the Application.MainForm property to an instance of your choosing:
Namespace My

    ' The following events are available for MyApplication:
    ' 
    ' Startup: Raised when the application starts, before the startup form is created.
    ' Shutdown: Raised after all application forms are closed.  This event is not raised if the application terminates abnormally.
    ' UnhandledException: Raised if the application encounters an unhandled exception.
    ' StartupNextInstance: Raised when launching a single-instance application and the application is already active. 
    ' NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected.
    Partial Friend Class MyApplication

        Private Sub MyApplication_Startup(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup
            If Date.Today.DayOfWeek = DayOfWeek.Tuesday Then
                Application.MainForm = New Form1
            Else
                Application.MainForm = New Form2
            End If
        End Sub

    End Class


End Namespace

Open in new window

0
 

Author Comment

by:gbmcneil
Comment Utility
That mind of yours is not very idle, Idle Mind. You've hit the nail on the head.

Your solution is exactly what I needed.

Thanks very much.
0
 
LVL 85

Expert Comment

by:Mike Tomlinson
Comment Utility
Glad that was helpful.

Just FYI, you can also CANCEL the app from the Startup() Event by setting "e.Cancel = True",  giving you the ability to shutdown the app WITHOUT showing any forms at all.
0
 
LVL 85

Expert Comment

by:Mike Tomlinson
Comment Utility
See "Overview of the Visual Basic Application Model":
http://msdn.microsoft.com/en-us/library/w3xx6ewx(VS.80).aspx
0
 

Author Comment

by:gbmcneil
Comment Utility
Thanks again. Good info to know.
0
 

Author Closing Comment

by:gbmcneil
Comment Utility
Thanks fot your help.
0

Featured Post

Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

Join & Write a Comment

It’s quite interesting for me as I worked with Excel using vb.net for some time. Here are some topics which I know want to share with others whom this might help. First of all if you are working with Excel then you need to Download the Following …
After several hours of googling I could not gather any information on this topic. There are several ways of controlling the USB port connected to any storage device. The best example of that is by changing the registry value of "HKEY_LOCAL_MACHINE\S…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now