windows窗体程序有系统托盘功能。程序退出时,如何刷新状态栏,让托盘自动消失。给出C#详细代码
时间: 2024-02-21 22:57:15 浏览: 129
在Windows窗体程序中,可以通过以下代码实现系统托盘功能,并在程序退出时刷新状态栏并让托盘自动消失:
```csharp
using System.Windows.Forms;
namespace MyApplication
{
public partial class MainForm : Form
{
private NotifyIcon trayIcon;
public MainForm()
{
InitializeComponent();
// 创建系统托盘图标
trayIcon = new NotifyIcon();
trayIcon.Icon = Properties.Resources.Icon;
trayIcon.Text = "My Application";
trayIcon.Visible = true;
// 添加菜单项
ContextMenu trayMenu = new ContextMenu();
trayMenu.MenuItems.Add("Exit", OnExit);
trayIcon.ContextMenu = trayMenu;
// 监听窗体关闭事件
FormClosing += OnClosing;
}
private void OnExit(object sender, EventArgs e)
{
// 退出应用程序
Application.Exit();
}
private void OnClosing(object sender, FormClosingEventArgs e)
{
// 如果用户点击了关闭按钮,则隐藏窗体并取消关闭操作
if (e.CloseReason == CloseReason.UserClosing)
{
e.Cancel = true;
Hide();
trayIcon.ShowBalloonTip(1000, "My Application", "The application is now running in the background.", ToolTipIcon.Info);
}
}
protected override void Dispose(bool disposing)
{
// 释放系统托盘图标资源
if (disposing && trayIcon != null)
{
trayIcon.Dispose();
}
base.Dispose(disposing);
}
private void OnRefreshStatusBar()
{
// 刷新状态栏
// ...
// 隐藏系统托盘图标
trayIcon.Visible = false;
}
}
}
```
在窗体关闭时,如果用户点击了关闭按钮,则隐藏窗体并在系统托盘图标上显示一个气泡提示,告知用户应用程序正在后台运行。在程序退出时,可以通过 `Dispose` 方法释放系统托盘图标资源。在需要刷新状态栏并让系统托盘图标消失的时候,可以调用 `OnRefreshStatusBar` 方法。
阅读全文