1 public partial class Form2 : Form 2 { 3 System.Diagnostics.Stopwatch sth = new System.Diagnostics.Stopwatch(); 4 5 [DllImport("user32")] 6 private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags); 7 8 //下面是可用的常量,根据不同的动画效果声明自己需要的 9 private const int AW_HOR_POSITIVE = 0x0001;//自左向右显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志 10 private const int AW_HOR_NEGATIVE = 0x0002;//自右向左显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志 11 private const int AW_VER_POSITIVE = 0x0004;//自顶向下显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志 12 private const int AW_VER_NEGATIVE = 0x0008;//自下向上显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志该标志 13 private const int AW_CENTER = 0x0010;//若使用了AW_HIDE标志,则使窗口向内重叠;否则向外扩展 14 private const int AW_HIDE = 0x10000;//隐藏窗口 15 private const int AW_ACTIVE = 0x20000;//激活窗口,在使用了AW_HIDE标志后不要使用这个标志 16 private const int AW_SLIDE = 0x40000;//使用滑动类型动画效果,默认为滚动动画类型,当使用AW_CENTER标志时,这个标志就被忽略 17 private const int AW_BLEND = 0x80000;//使用淡入淡出效果 18 19 public Form2() 20 { 21 InitializeComponent(); 22 } 23 24 private void Form2_Load(object sender, EventArgs e) 25 { 26 int x = Screen.PrimaryScreen.WorkingArea.Right - this.Width; 27 int y = Screen.PrimaryScreen.WorkingArea.Bottom - this.Height; 28 this.Location = new Point(x, y);//设置窗体在屏幕右下角显示 29 AnimateWindow(this.Handle, 1000, AW_SLIDE | AW_ACTIVE | AW_VER_NEGATIVE); 30 sth.Start(); 31 timer1.Enabled = true; 32 } 33 34 private void Form2_FormClosing(object sender, FormClosingEventArgs e) 35 { 36 AnimateWindow(this.Handle, 1000, AW_BLEND | AW_HIDE); 37 } 38 39 private void button4_Click(object sender, EventArgs e) 40 { 41 this.Close(); 42 this.Dispose(); 43 } 44 45 private void timer1_Tick(object sender, EventArgs e) 46 { 47 sth.Stop(); 48 TimeSpan ts = sth.Elapsed; 49 if (ts.TotalSeconds >= 3) 50 { 51 button4_Click(null, null); 52 } 53 else 54 { 55 sth.Start(); 56 } 57 } 58 }
弹出窗体方式:
new Form2().Show();