晨风

-------------------- 业精于勤,荒于嬉;行成于思,毁于随
posts - 197, comments - 33, trackbacks - 0, articles - 0

导航

公告

Winform程序以Icon的形式显示在任务栏右下角

Posted on 2013-07-05 14:28 shenyixin 阅读(...) 评论(...) 编辑 收藏

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不在任务栏上显示
}

WinForm窗口最小化到系统托盘右击托盘图标弹出退出菜单
1. 在Form上加notifyicon控件myIcon,为控件的属性Icon添加一个icon图标, Text为鼠标在图标上时显示的tip。
2. 在Form1_FormClosing中设置Form的ShowInTaskbar属性
3. 在myIcon_MouseClick事件中设置Form的ShowInTaskbar和WindowState属性
4. 添加ContextMenuStrip控件myMenu,右键托盘图标弹出菜单,设置myIcon的ContextMenuStrip属性为myMenu。在myMenu中添加item(退出)。
5. 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();         
 }