Export (0) Print
Expand All
6 out of 6 rated this helpful - Rate this topic

NotifyIcon Class

Specifies a component that creates an icon in the notification area. This class cannot be inherited.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

public sealed class NotifyIcon : Component
public final class NotifyIcon extends Component
public final class NotifyIcon extends Component
Not applicable.

Icons in the notification area are shortcuts to processes that are running in the background of a computer, such as a virus protection program or a volume control. These processes do not come with their own user interfaces. The NotifyIcon class provides a way to program in this functionality. The Icon property defines the icon that appears in the notification area. Pop-up menus for an icon are addressed with the ContextMenu property. The Text property assigns ToolTip text. In order for the icon to show up in the notification area, the Visible property must be set to true.

The following code example demonstrates using the NotifyIcon class to display an icon for an application in the notification area. The example demonstrates setting the Icon, ContextMenu, Text, and Visible properties and handling the DoubleClick event. A ContextMenu with an Exit item on it is assigned to the NotifyIcon.ContextMenu property, which allows the user to close the application. When the DoubleClick event occurs, the application form is activated by calling the Form.Activate method.

using System;
using System.Drawing;
using System.Windows.Forms;

public class Form1 : System.Windows.Forms.Form
{
    private System.Windows.Forms.NotifyIcon notifyIcon1;
    private System.Windows.Forms.ContextMenu contextMenu1;
    private System.Windows.Forms.MenuItem menuItem1;
    private System.ComponentModel.IContainer components;

    [STAThread]
    static void Main() 
    {
        Application.Run(new Form1());
    }

    public Form1()
    {
        this.components = new System.ComponentModel.Container();
        this.contextMenu1 = new System.Windows.Forms.ContextMenu();
        this.menuItem1 = new System.Windows.Forms.MenuItem();

        // Initialize contextMenu1
        this.contextMenu1.MenuItems.AddRange(
                    new System.Windows.Forms.MenuItem[] {this.menuItem1});

        // Initialize menuItem1
        this.menuItem1.Index = 0;
        this.menuItem1.Text = "E&xit";
        this.menuItem1.Click += new System.EventHandler(this.menuItem1_Click);

        // Set up how the form should be displayed.
        this.ClientSize = new System.Drawing.Size(292, 266);
        this.Text = "Notify Icon Example";

        // Create the NotifyIcon.
        this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);

        // The Icon property sets the icon that will appear
        // in the systray for this application.
        notifyIcon1.Icon = new Icon("appicon.ico");

        // The ContextMenu property sets the menu that will
        // appear when the systray icon is right clicked.
        notifyIcon1.ContextMenu = this.contextMenu1;

        // The Text property sets the text that will be displayed,
        // in a tooltip, when the mouse hovers over the systray icon.
        notifyIcon1.Text = "Form1 (NotifyIcon example)";
        notifyIcon1.Visible = true;

        // Handle the DoubleClick event to activate the form.
        notifyIcon1.DoubleClick += new System.EventHandler(this.notifyIcon1_DoubleClick);

    }

    protected override void Dispose( bool disposing )
    {
        // Clean up any components being used.
        if( disposing )
            if (components != null)
                components.Dispose();            

        base.Dispose( disposing );
    }

    private void notifyIcon1_DoubleClick(object Sender, EventArgs e) 
    {
        // Show the form when the user double clicks on the notify icon.

        // Set the WindowState to normal if the form is minimized.
        if (this.WindowState == FormWindowState.Minimized)
            this.WindowState = FormWindowState.Normal;

        // Activate the form.
        this.Activate();
    }

    private void menuItem1_Click(object Sender, EventArgs e) {
        // Close the form, which closes the application.
        this.Close();
    }
}

import System.*;
import System.Drawing.*;
import System.Windows.Forms.*;

public class Form1 extends System.Windows.Forms.Form
{
    private System.Windows.Forms.NotifyIcon notifyIcon1;
    private System.Windows.Forms.ContextMenu contextMenu1;
    private System.Windows.Forms.MenuItem menuItem1;
    private System.ComponentModel.IContainer components;

    /** @attribute STAThread()
     */
    public static void main(String[] args)
    {
        Application.Run(new Form1());
    } //main

    public Form1()
    {
        this.components = new System.ComponentModel.Container();
        this.contextMenu1 = new System.Windows.Forms.ContextMenu();
        this.menuItem1 = new System.Windows.Forms.MenuItem();
        // Initialize contextMenu1
        this.contextMenu1.get_MenuItems().AddRange(
            new System.Windows.Forms.MenuItem[] { this.menuItem1 });
        // Initialize menuItem1
        this.menuItem1.set_Index(0);
        this.menuItem1.set_Text("E&xit");
        this.menuItem1.add_Click(new System.EventHandler(this.menuItem1_Click));
        // Set up how the form should be displayed.
        this.set_ClientSize(new System.Drawing.Size(292, 266));
        this.set_Text("Notify Icon Example");
        // Create the NotifyIcon.
        this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
        // The Icon property sets the icon that will appear
        // in the systray for this application.
        notifyIcon1.set_Icon(new Icon("appicon.ico"));
        // The ContextMenu property sets the menu that will
        // appear when the systray icon is right clicked.
        notifyIcon1.set_ContextMenu(this.contextMenu1);
        // The Text property sets the text that will be displayed,
        // in a tooltip, when the mouse hovers over the systray icon.
        notifyIcon1.set_Text("Form1 (NotifyIcon example)");
        notifyIcon1.set_Visible(true);
        // Handle the DoubleClick event to activate the form.
        notifyIcon1.add_DoubleClick(
            new System.EventHandler(this.notifyIcon1_DoubleClick));
    } //Form1

    protected void Dispose(boolean disposing)
    {
        // Clean up any components being used.
        if (disposing) {
            if (components != null) {
                components.Dispose();
            }
        }

        super.Dispose(disposing);
    } //Dispose

    private void notifyIcon1_DoubleClick(Object Sender, EventArgs e)
    {
        // Show the form when the user double clicks on the notify icon.
        // Set the WindowState to normal if the form is minimized.
        if (this.get_WindowState().Equals(FormWindowState.Minimized)) {
            this.set_WindowState(FormWindowState.Normal);
        }
        // Activate the form.
        this.Activate();
    } //notifyIcon1_DoubleClick

    private void menuItem1_Click(Object Sender, EventArgs e)
    {
        // Close the form, which closes the application.
        this.Close();
    } //menuItem1_Click
} //Form1

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
      System.Windows.Forms.NotifyIcon
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.