实现将C#程序最小化到托盘图标需要完成以下几个步骤:
- 绑定系统托盘控件:在窗体上添加一个ContextMenu控件,然后在程序启动的时候绑定到系统托盘控件上。
private NotifyIcon notifyIcon;
private void BindNotifyIcon()
{
notifyIcon = new NotifyIcon();
notifyIcon.BalloonTipText = "程序已最小化";
notifyIcon.Text = "C#程序最小化到托盘图标";
notifyIcon.Icon = new Icon("icon.ico");//设置托盘图标
notifyIcon.Visible = true;
notifyIcon.DoubleClick += new EventHandler(NotifyIcon_DoubleClick);//双击托盘图标恢复窗体
this.WindowState = FormWindowState.Minimized;
this.Hide();//使主窗体隐藏
notifyIcon.ShowBalloonTip(2000);
notifyIcon.ContextMenu = new ContextMenu(new MenuItem[] { new MenuItem("退出程序", new EventHandler((o,e)=>{
this.Close();
}))});
}
//双击托盘图标恢复窗体
private void NotifyIcon_DoubleClick(object sender, EventArgs e)
{
this.Show();
this.WindowState = FormWindowState.Normal;
}
- 处理窗体最小化事件:当用户最小化窗体时,使窗体隐藏,同时在系统托盘中显示托盘图标和消息,表示程序正在后台运行。
private void frmMainResize(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
notifyIcon.Visible = true;
this.Hide();
notifyIcon.ShowBalloonTip(2000);
}
}
protected override void OnResize(EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.Hide();
notifyIcon.Visible = true;
notifyIcon.ShowBalloonTip(1000);
}
base.OnResize(e);
}
- 双击托盘图标进行还原:当用户双击托盘图标时,将程序还原至原来的状态。
private void NotifyIcon_DoubleClick(object sender, EventArgs e)
{
this.Show();
this.WindowState = FormWindowState.Normal;
}
示例一,将WinForm程序最小化到托盘图标:
- 创建一个WinForm应用程序,添加名为“frmMain”的窗体
- 在frmMain窗体的代码中添加上述代码实现上述三步
- 运行程序,在窗口最小化状态下,程序会继续在系统托盘中运行
示例二,WinForm程序最小化到托盘图标并在系统托盘中显示气泡提示:
- 在上述示例一的基础上,在BindNotifyIcon方法中的notifyIcon.ShowBalloonTip(2000);后添加notifyIcon.Visible = true;
- 在NotifyIcon_DoubleClick方法中,添加this.WindowState = FormWindowState.Normal;语句,代码如下:
private void NotifyIcon_DoubleClick(object sender, EventArgs e)
{
this.Show();
this.WindowState = FormWindowState.Normal;
notifyIcon.Visible = false;
}
- 运行程序,在系统托盘中双击程序图标,窗口会恢复至正常状态,同时托盘提示会自动消失。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#程序最小化到托盘图标操作步骤与实现代码 - Python技术站