C#窗口最小化及托盘菜单完美效果
**前言:**自己找了一些网上的资源,但是大多数都会有些瑕疵,不能完美实现功能,经过自己的多次尝试,以下代码能够完美解决问题,希望对于有同样问题的博友有帮助。
1:添加notifyIcon控件及contextMenuStrip控件并设置基本内容(设置显示图标及notifyIcon绑定右键事件contextMenuStrip)
3:创建Form1_Deactivate方法来处理最小化窗口时的显示效果
//当窗体为最小化状态时
if (this.WindowState == FormWindowState.Minimized)
{
this.notifyIcon1.Visible = true; //显示托盘图标
this.Hide();//隐藏窗体
this.ShowInTaskbar = false;//图标不显示在任务栏
}
4: public Form1()中添加以下代码:
this.SizeChanged += new System.EventHandler(this.Form1_Deactivate);
5、对于托盘中右键菜单显示、关于、退出方法的设计
双击对应的contextmenustrip项,分别编写如下代码
显示:
//托盘右键显示
this.Show();
WindowState = FormWindowState.Normal;
关于:
this.Show();
this.WindowState = FormWindowState.Normal;
MessageBox.Show("这里是程序关于弹窗","关于",MessageBoxButtons.OK,MessageBoxIcon.Asterisk);
退出:
this.Show();
this.WindowState = FormWindowState.Normal;
if (MessageBox.Show("是否确认退出程序?", "退出", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
this.Dispose();//关闭占用的资源
this.Close();
}
以上就是一个基础的窗体显示及最小化,托盘菜单的一点小小经验,欢迎博友参考交流。