C#一行代码之最小化到通知区域
代码实现
private void Form1_Load(object sender, EventArgs e) { this.ExAddNotifyIcon(); }
代码封装
/// <summary> /// 添加通知图标,左键点击切换窗口显示,右键点击弹出菜单 /// </summary> /// <param name="form"></param> /// <param name="tipText"></param> /// <param name="timeout"></param> /// <param name="tipIcon"></param> /// <returns></returns> public static NotifyIcon ExAddNotifyIcon(this Form form, string tipText = "程序最小化至后台运行,点击图标显示程序", int timeout = 3000, ToolTipIcon tipIcon = ToolTipIcon.Info) { NotifyIcon notifyIcon = new NotifyIcon(); notifyIcon.Icon = form.Icon; notifyIcon.Visible = true; notifyIcon.Text = form.Text; notifyIcon.BalloonTipText = form.Text; notifyIcon.MouseClick += (sender, args) => { if (args.Button == MouseButtons.Left) { if (!form.Visible) { form.Show(); form.WindowState = FormWindowState.Normal; form.TopMost = true; form.TopMost = false; } else { form.WindowState = FormWindowState.Minimized; form.Hide(); } } }; notifyIcon.ContextMenu = new ContextMenu(new MenuItem[] { new MenuItem("开机启动", (sender, args) => { ((MenuItem) sender).Checked = form.ExSwitchRunOnSystemStart(); }) { Checked = form.ExIsRunOnSystemStart() }, new MenuItem("退出程序", (sender, args) => { form.Close(); }), }); form.SizeChanged += (sender, args) => { if (form.WindowState == FormWindowState.Minimized) { form.Hide(); notifyIcon.ShowBalloonTip(timeout, form.Text, tipText, tipIcon); } }; form.FormClosed += (sender, args) => { notifyIcon.Dispose(); }; return notifyIcon; }
重复就是力量,数量堆死质量

浙公网安备 33010602011771号