在C#中使用NotifyIcon需要以下步驟:
添加NotifyIcon控件:在Windows窗體中,從工具箱中拖拽一個NotifyIcon控件到窗體上。
設置NotifyIcon屬性:選中NotifyIcon控件,打開屬性窗口,可以設置以下屬性:
Icon:設置在托盤中顯示的圖標。
Text:設置鼠標懸停在托盤圖標上顯示的文本。
Visible:設置是否可見,默認為false。
ContextMenuStrip:設置右鍵菜單。
以下是一個簡單的示例代碼:
using System;
using System.Windows.Forms;
namespace NotifyIconExample
{
public partial class MainForm : Form
{
private NotifyIcon notifyIcon;
private ContextMenuStrip contextMenuStrip;
public MainForm()
{
InitializeComponent();
// 初始化NotifyIcon
notifyIcon = new NotifyIcon();
notifyIcon.Icon = Properties.Resources.icon;
notifyIcon.Text = "NotifyIcon Example";
notifyIcon.Visible = true;
// 雙擊托盤圖標時的事件處理
notifyIcon.DoubleClick += NotifyIcon_DoubleClick;
// 初始化右鍵菜單
contextMenuStrip = new ContextMenuStrip();
ToolStripMenuItem openMenuItem = new ToolStripMenuItem("Open");
openMenuItem.Click += OpenMenuItem_Click;
contextMenuStrip.Items.Add(openMenuItem);
ToolStripMenuItem exitMenuItem = new ToolStripMenuItem("Exit");
exitMenuItem.Click += ExitMenuItem_Click;
contextMenuStrip.Items.Add(exitMenuItem);
// 設置右鍵菜單
notifyIcon.ContextMenuStrip = contextMenuStrip;
}
private void NotifyIcon_DoubleClick(object sender, EventArgs e)
{
// 雙擊托盤圖標時,打開或關閉主窗體
if (WindowState == FormWindowState.Minimized)
{
WindowState = FormWindowState.Normal;
}
else
{
WindowState = FormWindowState.Minimized;
}
}
private void OpenMenuItem_Click(object sender, EventArgs e)
{
// 打開主窗體
WindowState = FormWindowState.Normal;
}
private void ExitMenuItem_Click(object sender, EventArgs e)
{
// 退出應用程序
Application.Exit();
}
protected override void OnFormClosing(FormClosingEventArgs e)
{
// 在窗體關閉時,將NotifyIcon資源釋放
notifyIcon.Visible = false;
notifyIcon.Dispose();
base.OnFormClosing(e);
}
}
}
以上代碼實現了一個簡單的NotifyIcon示例,包含了雙擊托盤圖標打開或關閉主窗體的功能,以及右鍵菜單中的打開和退出功能。