在上一篇《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 ;
}