指定在状态区域创建图标的组件
指定在状态区域创建图标的组件。不能继承此类。
有关此类型所有成员的列表,请参阅 NotifyIcon 成员。
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
线程安全
此类型的所有公共静态(Visual Basic 中为 Shared)成员对多线程操作而言都是安全的。但不保证任何实例成员是线程安全的。
备注
状态区域中的图标是一些进程的快捷方式,这些进程在计算机后台运行,如防病毒程序或音量控制。这些进程不会具有自己的用户界面。NotifyIcon 类提供了编写此功能的方法。Icon 属性定义显示在状态区域中的图标。图标的弹出菜单由 ContextMenu 属性确定。Text 属性分配工具提示文本。要在状态区域中显示图标,必须将 Visible 属性设置为 true。
示例
[Visual Basic, C#, C++] 下面的示例说明了如何使用 NotifyIcon 类来为通知区域中的应用程序显示一个图标。此示例说明了如何设置 Icon、ContextMenu、Text 和 Visible 属性以及如何处理 DoubleClick 事件。带有 Exit 项的 ContextMenu 被分配给 NotifyIcon.ContextMenu 属性,从而可以使用户关闭应用程序。当发生 DoubleClick 事件时,将通过调用 Form.Activate 方法激活该应用程序窗体。
[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, 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, 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();
}
private:
void menuItem1_Click(Object* Sender, EventArgs* e) {
// Close the form, which closes the application.
this->Close();
}
};
[STAThread]
int main() {
Application::Run(new Form1());
}