前言
一般From最小化会使Form都会缩小到任务栏上,但是是以Form的标题栏的形式显示。
实现将程序缩小到右下角的任务栏,还需要给Form添加一个NotifyIcon控件,代码如下
if (this.WindowState == FormWindowState.Normal && this.Visible == true)
{
this.notifyIcon1.Visible = true;//在通知区显示Form的Icon
this.WindowState = FormWindowState.Minimized;
this.Visible = false;
this.ShowInTaskbar = false;//使Form不在任务栏上显示
}
实现方法
WinForm窗口最小化到系统托盘右击托盘图标弹出退出菜单
1、在Form上加Notifyicon控件myicon,为控件的属性Icon添加一个icon图标,Text为鼠标在图标上时显示的tip。
2、在From1_FormClosing中设置Form的ShowInTaskbar属性
3、在myicon_MouseClick事件中设置Form的ShowInTaskbar和WindowState属性
4、添加ContextMenuStrip控件myMenu,右键托盘图标弹出菜单,设置myIcon的ContextMenuStrip属性为myMenu。在myMenu中添加item(退出)。
myIcon在MouseClick事件中,判断右键点击并弹出ContextMenuStrip。
代码如下:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (e.CloseReason == CloseReason.UserClosing)//当用户点击窗体右上角X按钮或(Alt + F4)时 发生
{
e.Cancel = true;
this.ShowInTaskbar = false;
this.myIcon.Icon = this.Icon;
this.Hide();
}
}
private void myIcon_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
myMenu.Show();
}
if (e.Button == MouseButtons.Left)
{
this.Visible = true;
this.WindowState = FormWindowState.Normal;
}
}
private void toolMenuCancel_Click(object sender, EventArgs e)
{
Application.Exit();
}