h1

VB.Net – Hide Form at Startup

28/08/2009

I’ve been using Microsoft Visual Basic 2008 (Express Edition) recently to create some utilities.  As part of this I needed to have an application start-up but only display as an icon in the system tray.  After attaching a notify icon control to my main form I set the form’s load method to set the display in task bar and visible properties of the form to be false.

Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
notifyiconMain.Visible = True
Me.WindowState = FormWindowState.Minimized
Me.Visible = False
End Sub

However this code doesn’t have quite the effect you think it should – i.e. hiding the form and displaying the icon in the system tray.  What in fact happens (at least on Windows XP) is the window is squished up next to the start menu (the icon in the system tray is also there – as we would want).

That window shouldn't be visible

That window shouldn't be visible

These few lines of code work fine once the form is created and displayed, so the issue is definitely linked to the initial creation of the form.

After trying several options (such as minimise, restore, minimise) I succumbed to Googling for an answer and whilst I found lots of answers they were all complicated, a little laborious or just bad coding practice.  However I did find a different and surprisingly simple solution.

Rather than setting the window as minimised in the load method just set the WindowState property of the form to “Minimized“.  The load method then simply becomes…

Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
notifyiconMain.Visible = True
Me.Visible = False
End Sub
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: