您的位置:首页 > 编程语言 > C#

c#窗体最小化到任务栏

2013-05-11 14:38 162 查看
作者:shangwei97

转自:http://blog.csdn.net/shangwei97/article/details/3305478

看到网上的一些方法是利用重写窗体的Closing过程来完成的,代码如下:
//添加NotifyIcon控件
private System.Windows.Forms.NotifyIcon notifyIcon1;
//设置属性
this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
this.Closing +=new CancelEventHandler(Form1_Closing);
this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon")));

this.notifyIcon1.Text = "网页分析器";

this.notifyIcon1.Visible = false;
this.notifyIcon1.MouseDown += new System.Windows.Forms.MouseEventHandle(this.notifyIcon1_MouseDown);
//重写Closing过程
this.Closing +=new CancelEventHandler(Form1_Closing);

private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{

this.Hide();
this.notifyIcon1.Visible=true;

e.Cancel=true;

}

private void notifyIcon1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e){
this.show();

this.Activate();
this.notifyIcon1.Visible=false;
}

但是这样就没有最小化的效果了,其实我们可以通过重写Deactivate事件来达到"最小化"的效果
代码:
~~~
this.Deactivate += new System.EventHandler(this.Form1_Mini);
private void Form1_Mini(object sender, System.EventArgs e)

{

if(this.WindowState==FormWindowState.Minimized)

{

this.Visible=false;
this.notifyIcon1.Visible=true;

}
}

private void notifyIcon1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e){
this.Visible=true;
this.WindowState=FormWindowState.Normal;

this.Activate();
this.notifyIcon1.Visible=false;
}

这样就有最小化的效果了,不过还要解决最小化方向的问题~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: