C#中实现Form的Minimize、Maximize、Close按钮及任务栏图标

      这是第一次写博客,心里还有点紧张,不知道该写什么,仔细回想了一下最近自己看的东西,发现自己前一段时间看的C#实现Form的Minimize、Maximize、Close按钮的内容记得还比较清楚,所以就赶紧记录下来。

     在C#.net中Form对象有一个WindowState属性,该属性有三个值,分别是FormWindowState.Minimized、FormWindowState.Maximized、FormWindowState.Normal,这三个值分别代表了Form当前属于最小化、最大化、正常状态,可以用如下代码设置窗体的状态:

Change Form State
this.WindowState=FormWindowState.Minimized;//将窗体最小化
this.WindowState=FormWindowState.Maximized;//将窗体最大化
this.WindowState=FormWindowState.Normal;//将窗体设为正常大小


   当然在设置窗体状态之前要判断一下当前窗体的状态了,不然容易出错。可以按照如下方法判断Form状态:

  

Judge Form State
//将窗体从当前最大化恢复到正常状态
if(this.WindowState==FormWindowState.Maximized&&this.Visible==true)
{
this.WindowState=FormWindowState.Normal;
}

Form最小化是指整个Form都缩小到任务栏上,但是是以Form的标题栏形式显示的,若是想让Form以Icon的形式显示在任务栏右下角,则需要给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不在任务栏上显示

}

当然要是Form能够复原,就必须要给notifyIcon1添加一些事件,可以给this.notifyIcon1.MouseDoubleClick()添加如下代码

private void notifyIcon1_MouseDoubleClick(object sender,MouseEventArgs e)

{

  if(this.WindowState==FormWindowState.Minimized&&this.Visible==false)

{

  this.WindowState=FormWindowState.Normal;

  this.Visible=true;

  this.ShowInTaskbar=true;

  this.notifyIcon1.Visible=false;

}

}

这样双击通知区的Form的Icon时,Form就可以恢复正常了。

这里要注意,需要给notifyIcon1的Icon属性设置一张图片,因为Icon默认的是无图片,这样你在通知区就发现不了Form的Icon了。

 

第一次写博客,要是有什么错误,还望不吝赐教!

原文地址:https://www.cnblogs.com/warm/p/2369128.html