All C# Developers will try to create a Application like Notification in taskbar, This can be done easily Using the following Two Class.
- NotifyIcon
- ContextMenu
NotifyIcon : Component that Creates a Icon in the Notification Area, This class cannot be inherited.
ContextMenu : This class will create a Context Menu in Notify Icon.
Let we Start the simple program with Steps.
- Create a Class Named "NotificationApp"
- Declare a Two Variables one for "NotifyIcon" ,Other for "ContextMenu".
- Initialize the values for "Property" of NotifyIcon class and ContextMenu Class,and also Bind the 'Eventhandlers" for Events for that two class in the Constructor.
- Call the class in the Application Main Method.
/****************************************************************************/
Step 1 : Create a Class
public sealed class NotificationApp
/****************************************************************************/
Step 2: Declare the variables
private NotifyIcon notifyIcon;
/****************************************************************************/
Step 3: Initialize Values in Constructor of that Class
public NotificationApp()
{
{
notifyIcon = new NotifyIcon();
notificationMenu = new ContextMenu(InitializeMenu());
notifyIcon.DoubleClick += IconDoubleClick;
notificationMenu = new ContextMenu(InitializeMenu());
notifyIcon.DoubleClick += IconDoubleClick;
/* Assign the Icon from System Icon */
notifyIcon.Icon = SystemIcons.Exclamation;
notifyIcon.ContextMenu = notificationMenu;
}
/* Add Menu item in ContextMenu */
private MenuItem[] InitializeMenu()
{
MenuItem[] menu = new MenuItem[] {
new MenuItem("About", menuAboutClick),
new MenuItem("Exit", menuExitClick)
};
return menu;
}
{
MenuItem[] menu = new MenuItem[] {
new MenuItem("About", menuAboutClick),
new MenuItem("Exit", menuExitClick)
};
return menu;
}
/* Method that are bind in Events , Add reference System.Windows.Forms */
private void menuAboutClick(object sender, EventArgs e)
{
MessageBox.Show("About was Clicked");
}
private void menuExitClick(object sender, EventArgs e)
{
Application.Exit();
}
private void IconDoubleClick(object sender, EventArgs e)
{
MessageBox.Show("The icon was double clicked");
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
bool isFirstInstance;
{
MessageBox.Show("About was Clicked");
}
private void menuExitClick(object sender, EventArgs e)
{
Application.Exit();
}
private void IconDoubleClick(object sender, EventArgs e)
{
MessageBox.Show("The icon was double clicked");
}
/****************************************************************************/
Step 4: Call the class inside Main Method
public static void Main(string[] args)
{Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
bool isFirstInstance;
// Please use a unique name for the mutex to prevent conflicts with other programs
using (Mutex mtx = new Mutex(true, "sampleNotify", out isFirstInstance))
{
if (isFirstInstance)
if (isFirstInstance)
{
NotificationApp notificationIcon = new NotificationApp();
notificationIcon.notifyIcon.Visible = true;
Application.Run();
notificationIcon.notifyIcon.Dispose();
}
NotificationApp notificationIcon = new NotificationApp();
notificationIcon.notifyIcon.Visible = true;
Application.Run();
notificationIcon.notifyIcon.Dispose();
}
else
{
// The application is already running
// invoke the existing running instance
}
} // releases the Mutex
}
// The application is already running
// invoke the existing running instance
}
} // releases the Mutex
}
/****************************************************************************/
Whole Class NotificationApp.Cs
public sealed class NotificationApp
{
private NotifyIcon notifyIcon;
private ContextMenu notificationMenu;
public NotificationApp()
{
notifyIcon = new NotifyIcon();
notificationMenu = new ContextMenu(InitializeMenu());
notifyIcon.DoubleClick += IconDoubleClick;
notificationMenu = new ContextMenu(InitializeMenu());
notifyIcon.DoubleClick += IconDoubleClick;
/* Assign the Icon from System Icon */
notifyIcon.Icon = SystemIcons.Exclamation;
notifyIcon.ContextMenu = notificationMenu;
}
/* Add Menu item in ContextMenu */
private MenuItem[] InitializeMenu()
{
MenuItem[] menu = new MenuItem[] {
new MenuItem("About", menuAboutClick),
new MenuItem("Exit", menuExitClick)
};
return menu;
}
{
MenuItem[] menu = new MenuItem[] {
new MenuItem("About", menuAboutClick),
new MenuItem("Exit", menuExitClick)
};
return menu;
}
private void menuAboutClick(object sender, EventArgs e)
{MessageBox.Show("About was Clicked");
}
private void menuExitClick(object sender, EventArgs e)
{
Application.Exit();
}
private void IconDoubleClick(object sender, EventArgs e)
{
MessageBox.Show("The icon was double clicked");
}
public static void Main(string[] args)
// Please use a unique name for the mutex to prevent conflicts with other programs
using (Mutex mtx = new Mutex(true, "sampleNotify", out isFirstInstance))
Enjoy, With this Basic Notification App.
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
bool isFirstInstance;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
bool isFirstInstance;
// Please use a unique name for the mutex to prevent conflicts with other programs
using (Mutex mtx = new Mutex(true, "sampleNotify", out isFirstInstance))
{
if (isFirstInstance)
if (isFirstInstance)
{
NotificationApp notificationIcon = new NotificationApp();
notificationIcon.notifyIcon.Visible = true;
Application.Run();
notificationIcon.notifyIcon.Dispose();
}
NotificationApp notificationIcon = new NotificationApp();
notificationIcon.notifyIcon.Visible = true;
Application.Run();
notificationIcon.notifyIcon.Dispose();
}
else
{
// The application is already running
// invoke the existing running instance
}
} // releases the Mutex
}
// The application is already running
// invoke the existing running instance
}
} // releases the Mutex
}
}
Enjoy, With this Basic Notification App.
No comments:
Post a Comment