WinForm窗口系统托盘闪烁,窗口透明感

在上一篇《C# WinForm窗口最小化到系统托盘》基础上,添加一个Timer 控件Splashtimer

触发事件:

private void Splashtimer_Tick(object sender, System.EventArgs e)
  {
   if ( m_bFlag == true )
    {
     this.notifyIcon1.Icon = m_Icon2;
     m_bFlag = false;
    }
    else
    {
     this.notifyIcon1.Icon = m_Icon1;
     m_bFlag = true;
   } 
  }

当然先要定义三个变量:
  private Icon m_Icon1;
  private Icon m_Icon2;
   private bool m_bFlag;

然后导入图标文件,这两个图标要有差异,这样才能有闪烁现象

private void Form1_Load(object sender, System.EventArgs e)
  {

   m_bFlag=true;
   m_Icon1 = new Icon("app1.ico");//导入图标文件
   m_Icon2 = new Icon("app2.ico");

  this.Splashtimer.Interval = 100;
   this.Splashtimer.Start();

  this.Location = new System.Drawing.Point( 100 , 100 ) ;
   this.Cursor = System.Windows.Forms.Cursors.Hand;
   // 定义在窗体上,光标显示为手形
   this.Text = "透明的WinForm窗体!";
   // 定义窗体的标题名称
   this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
   // 定义窗体的开始显示位置是屏幕的中间
   this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
   // 窗体的边界是Fixed3D类型
   this.ForeColor = System.Drawing.SystemColors.Desktop;
   //以桌面的前景色作为窗体的前景色
   this.Font = new System.Drawing.Font ( "宋体", 9 ) ;
   // 定义字体类型,大小
   this.BackColor = System.Drawing.Color.Blue;
   // 定义背景色为蓝色
   this.ClientSize = new System.Drawing.Size( 440 , 170 ) ;
   // 设置窗体的大小
   // Opacity属性设立窗体的透明程度,只对于视窗2000有效
   this.Opacity = 0.60 ;

 }

你可能感兴趣的:(C#)