一个windows窗体程序,如果用户点击窗体的“-”,显示系统托盘,且程序不显示在状态栏。请给出C#的详细实例
时间: 2024-05-06 15:18:05 浏览: 84
以下是一个简单的 C# 代码示例,实现了将窗体最小化到系统托盘,同时不在任务栏中显示:
```csharp
using System;
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
private NotifyIcon notifyIcon;
public Form1()
{
InitializeComponent();
InitializeNotifyIcon();
}
private void InitializeNotifyIcon()
{
this.notifyIcon = new NotifyIcon();
this.notifyIcon.Icon = new Icon("icon.ico");
this.notifyIcon.Text = "My Application";
this.notifyIcon.Visible = true;
this.notifyIcon.MouseClick += NotifyIcon_MouseClick;
}
private void NotifyIcon_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
this.Show();
this.WindowState = FormWindowState.Normal;
}
}
protected override void OnResize(EventArgs e)
{
base.OnResize(e);
if (WindowState == FormWindowState.Minimized)
{
this.Hide();
}
}
protected override void Dispose(bool disposing)
{
if (disposing && this.notifyIcon != null)
{
this.notifyIcon.Dispose();
}
base.Dispose(disposing);
}
}
}
```
在此示例中,我们创建了一个 `NotifyIcon` 控件,并在窗体初始化时将其设置为可见状态。当用户单击通知区域中的图标时,我们将窗体还原并显示在屏幕上。当窗体被最小化时,我们将其隐藏以避免在任务栏中显示。
请注意,我们还在窗体的 `Dispose` 方法中释放了 `NotifyIcon` 控件,以确保在程序退出时它被正确地清理。
阅读全文