让我为您详细讲解一下“C# WinForm窗口最小化到系统托盘”的完整攻略。
基本思路
将窗口最小化到系统托盘需要用到以下两个类:
- NotifyIcon: 系统托盘图标类,用于在系统托盘中显示图标。
- ContextMenuStrip: 右键菜单类,用于为系统托盘图标添加右键菜单。
基本的思路是,在窗口最小化时,将窗口隐藏并在系统托盘中显示一个图标,当用户单击该图标时,再将窗口显示出来。
示例1:最小化时将窗口隐藏并在系统托盘中显示图标
private NotifyIcon notifyIcon; // 声明一个NotifyIcon对象
private void MainForm_Resize(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
// 隐藏窗口
Hide();
// 在系统托盘中显示一个图标
notifyIcon = new NotifyIcon();
notifyIcon.Icon = Properties.Resources.tray_icon;
notifyIcon.Text = "My App";
notifyIcon.ContextMenuStrip = contextMenuStrip;
notifyIcon.Visible = true;
}
}
在窗口最小化时,先隐藏窗口,然后创建一个NotifyIcon对象,在其中设置图标、提示文本和右键菜单,并将可见性设置为true,这样图标就会显示在系统托盘中。
示例2:单击系统托盘图标时将窗口显示出来
private void notifyIcon_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
// 显示窗口
Show();
WindowState = FormWindowState.Normal;
// 隐藏系统托盘中的图标
notifyIcon.Visible = false;
}
}
在NotifyIcon的MouseClick事件中,当用户单击左键时,将窗口显示出来,并将WindowState设置为Normal,这样窗口就会被恢复到原来的大小和位置。然后隐藏掉系统托盘中的图标。
总结
综上所述,要将C# WinForm窗口最小化到系统托盘,需要在窗口最小化时,使用NotifyIcon类在系统托盘中显示一个图标,并在该图标的MouseClick事件中将窗口显示出来。当然,在显示窗口之前,还需要将图标从系统托盘中隐藏掉。
以上是关于C# WinForm窗口最小化到系统托盘的完整攻略及两个示例。希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# WinForm窗口最小化到系统托盘 - Python技术站