NotifyIcon Class
Specifies a component that creates an icon in the status area. This class cannot be inherited.
For a list of all members of this type, see NotifyIcon Members.
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.NotifyIcon
[Visual Basic] NotInheritable Public Class NotifyIcon Inherits Component [C#] public sealed class NotifyIcon : Component [C++] public __gc __sealed class NotifyIcon : public Component [JScript] public class NotifyIcon extends Component
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Remarks
Icons in the status area are short cuts 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 status 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 status area, the Visible property must be set to true.
Example
[Visual Basic, C#, C++] The following 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 a Exit item on it is assigned to the NotifyIcon.ContextMenu property that allows the user to close the application. When the NotifyIcon. DoubleClick event occurs, the application form is activated by calling the Form.Activate method.
[Visual Basic] Imports System Imports System.Drawing Imports System.Windows.Forms Public NotInheritable Class Form1 Inherits System.Windows.Forms.Form Private contextMenu1 As System.Windows.Forms.ContextMenu Friend WithEvents menuItem1 As System.Windows.Forms.MenuItem Friend WithEvents notifyIcon1 As System.Windows.Forms.NotifyIcon Private components As System.ComponentModel.IContainer <System.STAThread()> _ Public Shared Sub Main() System.Windows.Forms.Application.Run(New Form1) End Sub 'Main Public Sub New() Me.components = New System.ComponentModel.Container Me.contextMenu1 = New System.Windows.Forms.ContextMenu Me.menuItem1 = New System.Windows.Forms.MenuItem ' Initialize contextMenu1 Me.contextMenu1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() _ {Me.menuItem1}) ' Initialize menuItem1 Me.menuItem1.Index = 0 Me.menuItem1.Text = "E&xit" ' Set up how the form should be displayed. Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(292, 266) Me.Text = "Notify Icon Example" ' Create the NotifyIcon. Me.notifyIcon1 = New System.Windows.Forms.NotifyIcon(Me.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 = Me.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 End Sub 'New Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) ' Clean up any components being used. If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub 'Dispose Private Sub notifyIcon1_DoubleClick(Sender as object, e as EventArgs) handles notifyIcon1.DoubleClick ' Show the form when the user double clicks on the notify icon. ' Set the WindowState to normal if the form is minimized. if (me.WindowState = FormWindowState.Minimized) then _ me.WindowState = FormWindowState.Normal ' Activate the form. me.Activate() end sub Private Sub menuItem1_Click(Sender as object, e as EventArgs) handles menuItem1.Click ' Close the form, which closes the application. me.Close() end sub End Class 'Form1 [C#] 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(); } } [C++] #using <mscorlib.dll> #using <System.dll> #using <System.Windows.Forms.dll> #using <System.Drawing.dll> using namespace System; using namespace System::Drawing; using namespace System::Windows::Forms; public __gc class Form1 : public System::Windows::Forms::Form { private: System::Windows::Forms::NotifyIcon* notifyIcon1; System::Windows::Forms::ContextMenu* contextMenu1; System::Windows::Forms::MenuItem* menuItem1; System::ComponentModel::IContainer* components; public: Form1() { this->components = new System::ComponentModel::Container(); this->contextMenu1 = new System::Windows::Forms::ContextMenu(); this->menuItem1 = new System::Windows::Forms::MenuItem(); // Initialize contextMenu1 System::Windows::Forms::MenuItem* temp0 [] = {this->menuItem1}; this->contextMenu1->MenuItems->AddRange(temp0); // Initialize menuItem1 this->menuItem1->Index = 0; this->menuItem1->Text = S"E&xit"; this->menuItem1->Click += new System::EventHandler(this, &Form1::menuItem1_Click); // Set up how the form should be displayed. this->ClientSize = System::Drawing::Size(292, 266); this->Text = S"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 System::Drawing::Icon(S"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 = S"Form1 (NotifyIcon example)"; notifyIcon1->Visible = true; // Handle the DoubleClick event to activate the form. notifyIcon1->DoubleClick += new System::EventHandler(this, &Form1::notifyIcon1_DoubleClick); } protected: void Dispose(bool disposing) { // Clean up any components being used. if (disposing) if (components != 0) components->Dispose(); Form::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(); } void menuItem1_Click(Object* /*Sender*/, EventArgs* /*e*/) { // Close the form, which closes the application. this->Close(); } }; [STAThread] int main() { Application::Run(new Form1()); }
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Namespace: System.Windows.Forms
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
.NET Framework Security:
- UIPermission to create the NotifyIcon component. Associated enumeration: UIPermissionWindow.AllWindows