1.form1事件
notice frmShowWarning = new notice();//Form1为要弹出的窗体(提示框),
Point p = new Point(Screen.PrimaryScreen.WorkingArea.Width - frmShowWarning.Width, Screen.PrimaryScreen.WorkingArea.Height);
frmShowWarning.PointToScreen(p);
frmShowWarning.Location = p;
frmShowWarning.Show();
for (int i = 0; i <= frmShowWarning.Height; i++)
{
frmShowWarning.Location = new Point(p.X, p.Y - i);
Thread.Sleep(10);//将线程沉睡时间调的越小升起的越快
}
2.弹窗form
建立timer1、timer2控件
timer1tick事件
timer2.Enabled = false;//停止timer2计时器,
if (this.Opacity > 0 && this.Opacity <= 1)//开始执行弹出窗渐渐透明
{
this.Opacity = this.Opacity - 0.05;//透明频度0.05
}
if (System.Windows.Forms.Control.MousePosition.X >= this.Location.X && System.Windows.Forms.Control.MousePosition.Y >= this.Location.Y)//每次都判断鼠标是否是在弹出窗上,使用鼠标在屏幕上的坐标跟弹出窗体的屏幕坐标做比较。
{
timer2.Enabled = true;//如果鼠标在弹出窗上的时候,timer2开始工作
timer1.Enabled = false;//timer1停止工作。
}
if (this.Opacity == 0)//当透明度==0的时候,关闭弹出窗以释放资源。
{
this.Close();
}
timer2tick事件
///
///
/// 判断鼠标是不是还在弹出框上,如果不是则timer1又可以开始工作了
/// //////timer1.Enabled = false;//timer1停止工作 this.Opacity = 1;//弹出窗透明度设置为1,完全不透明 if (System.Windows.Forms.Control.MousePosition.X < this.Location.X && System.Windows.Forms.Control.MousePosition.Y < this.Location.Y)//如下 { timer1.Enabled = true; timer2.Enabled = false; }