Click here to Skip to main content
13,835,388 members
Click here to Skip to main content
Add your own
alternative version

Tagged as


21 bookmarked
Posted 18 May 2008
Licenced CPOL

Animating Shell Tray Icon With C#

, 18 May 2008
Rate this:
Please Sign up or sign in to vote.
This class helps to animate a tray icon.




This article explains how to animate the tray icon. In .NET, they have simplified the things to add an icon in the system tray.

While writing an application, in many cases we need to add the application to the system tray and most of the common functionality will be provided from the context menu from the system tray. The application will show background processing through an icon animation, like if the application is processing an event, then it will animate the icon till the event processing is complete.


If you are writing an application in C#, it has the NotifyIcon() component with capabilities to add an application icon in the system tray, or you can use the Shell API Shell_NotifyIcon() to add the icon; using the API is not very easy though.

About the SystemTray Class

This class wraps almost all the functionalities of the NotifyIcon component as well as extends the functionality to achieve easy animation of the tray icon. The class provides functions with which it is easy to configure the class.

SystemTray Class Summary

It is very simple to use this class. I will describe how to use the class after explaining all the other details of the class.



This class provides four constructors to simplify the use of the class in your project.

//Default constructor

//Constructor with the parameter tooltip text    
SystemTray(string pTrayText)

//Constructor with tooltip test and icon
SystemTray(string pTrayText, Icon pIcon)

//Constructor with Animation parameter
SystemTray(string pTrayText,Icon pIcon,bool pAnimate) 

Parameter details

  • pTrayText: A string you want to display as the tooltip text when the mouse points at the application system tray icon.
  • pIcon: A System.Drawing.Icon object which will be displayed in the system tray.
  • pAnimate: A bool parameter to support the animation capabilities.



//Start the icon animation
void StartAnimation()

//Stops the icon animation
void StopAnimation()

//Starts the animation with the timeout value after
//which the animation will stop.value will be in miliseconds
void StartAnimation(int timeOut)

//Displays the baloon tooltip with timeout value.
//Time out will be in miliseconds
void ShowBaloonTrayTip(int nTimeout)

//Displays the baloon tooltip with some parameters
void ShowBaloonTrayTip(int nTimeOut,string tipTitle, 
                       string tipText,ToolTipIcon tipIcon)

//Sets the icon objets to the class,will be used for animation
void SetIconRange(object[] IconList)


//Set icon to class
Icon Icon

//Make tray icon visible true or false
bool Visible

//Set text to trayicon 
string TrayText

//Sets the animation ability 
bool Animate

//To set the baloon tooltip text
string BaloonTipText

//To set the baloon tooltip title
string BalloonTipTitle

//To set the baloon tooltip icon
ToolTipIcon BalloonTipIcon

Using the SystemTray Class

Here is how to use the SystemTray class:

//SystemTray stray;
//Add in form load or InitializeComponent() function
object[] objValues = new object[2];
objValues[0] = Convert.ToString("Icon1.ico");
objValues[1] = Convert.ToString("Icon2.ico");

//Add Icon

stray= new SystemTray("Sample Tray Icon Animation",null,true);
//Sets icons for animation
//Set menu 
//Set Event
stray.DoubleClick += new System.EventHandler(this.DbClick);
//Set menu handler
stray.ContextMenuStrip.Items[0].Click += 
      new EventHandler(SystemTraySample_Click);
//Start icon animation for 2 seconds


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Systems Engineer
India India
No Biography provided

You may also be interested in...

Comments and Discussions

GeneralMy vote of 1 Pin
Q3Vinay1915-Mar-10 4:46
memberQ3Vinay1915-Mar-10 4:46 
GeneralIt animates icons in the tray, just as I wanted Pin
Eddy Vluggen11-Mar-10 14:40
mveEddy Vluggen11-Mar-10 14:40 
Generalok next step Pin
Donsw28-Jun-09 15:51
memberDonsw28-Jun-09 15:51 
Generali want the detail Pin
yingxuzhong20-Feb-09 1:06
memberyingxuzhong20-Feb-09 1:06 
GeneralThis article doesn't explain anything Pin
John Simmons / outlaw programmer19-May-08 0:46
mveJohn Simmons / outlaw programmer19-May-08 0:46 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Cookies | Terms of Use | Mobile
Web05 | 2.8.190114.1 | Last Updated 19 May 2008
Article Copyright 2008 by sudhir_Kumar
Everything else Copyright © CodeProject, 1999-2019
Layout: fixed | fluid