C#中实现Form的Minimize、Maximize、Close按钮及任务栏图标
这是第一次写博客,心里还有点紧张,不知道该写什么,仔细回想了一下最近自己看的东西,发现自己前一段时间看的C#实现Form的Minimize、Maximize、Close按钮的内容记得还比较清楚,所以就赶紧记录下来。
在C#.net中Form对象有一个WindowState属性,该属性有三个值,分别是FormWindowState.Minimized、FormWindowState.Maximized、FormWindowState.Normal,这三个值分别代表了Form当前属于最小化、最大化、正常状态,可以用如下代码设置窗体的状态:
this.WindowState=FormWindowState.Minimized;//将窗体最小化
this.WindowState=FormWindowState.Maximized;//将窗体最大化
this.WindowState=FormWindowState.Normal;//将窗体设为正常大小
当然在设置窗体状态之前要判断一下当前窗体的状态了,不然容易出错。可以按照如下方法判断Form状态:
//将窗体从当前最大化恢复到正常状态
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了。
第一次写博客,要是有什么错误,还望不吝赐教!