Using the NotifyIcon control

Drag the NotifyIcon control onto your form from the toolbox. Now to initialize the notify icon, the code is pretty simple it goes like this.

notifyIcon1.Icon = new System.Drawing.Icon (@"c:\1.ico");
notifyIcon1.Visible = true;
notifyIcon1.Text = "Test Notify Icon Demo";

You can set the above properties in design time aswell by using the properties window, to hide the notifyIcon you need to set the notifyIcon1.visible = false. You can add click and double click events to the icon by simply inserting this code into the private void InitializeComponent() part of the form:

this.notifyIcon1.DoubleClick += new System.EventHandler(this.notifyIcon1_DoubleClick);

You can now use the below code to show the double click on the icon:

private void notifyIcon1_DoubleClick(object sender, System.EventArgs e)
    MessageBox.Show("Icon Notify Double Clicked");

Now you will probably say great I can change the icon when an event happens in the program and I can see when the user has clicked on the icon to fire other events but how can i add a menu to the icon? Well its pretty simple you can use the ContextMenu control. As before drag and drop this control from the toolbox onto the form, a white container will appear at the top of the active form from where you can enter the menu items. To add this ContextMenu to the NotifyIcon you code it like

notifyIcon1.ContextMenu = contextMenu1;

The ContextMenu events work as they do with any other function calling the ContextMenu, by this i mean you create a event hander:

this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click);

and then code the click like this:

private void menuItem2_Click(object sender, System.EventArgs e)
    MessageBox.Show("MenuItem2 Clicked");

You might also like...


Colin Harman MACITP I am 26 and live in sydney, australia. I enjoy drinking and going out, but I also enjoy writing programs + creating websites in my free time. I play golf and ski. One of my main intrests whe...


Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“Never trust a programmer in a suit.” - Anonymous