需要timer控制动作的重复进行
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; //using System.Linq; using System.Text; using System.Windows.Forms; namespace Case01_2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void hScrollBar1_Scroll(object sender, ScrollEventArgs e) { double x; x = Convert.ToDouble(hScrollBar1.Value) ; if (x > 40) { this.Opacity = x / 100;//把滑动条的值作为透明的层次 } } private void button1_Click(object sender, EventArgs e) { Form2 myf = new Form2(); myf.Text = "淡隐动画窗体"; myf.Show(); } private void button2_Click(object sender, EventArgs e) { Form2 myf2 = new Form2(); myf2.Text = "淡显动画窗体"; myf2.Show(); } } }
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; //using System.Linq; using System.Text; using System.Windows.Forms; namespace Case01_2 { public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { timer1.Interval = 300; timer2.Interval = 300; if (this.Text == "淡隐动画窗体") { this.timer1.Enabled = true; this.timer2.Enabled = false; this.Opacity = 1; } else { this.timer1.Enabled = false; this.timer2.Enabled = true; this.Opacity = 0; } } private void timer1_Tick(object sender, EventArgs e) { this.Opacity = this.Opacity - 0.05; //不透明度减少幅度为5% if (this.Opacity < 0.1) //如果窗体的不透明度小于0.1,则计时器控件timer1不可用并关闭窗体 { timer1.Enabled = false; this.Close(); } } private void timer2_Tick(object sender, EventArgs e) { this.Opacity = this.Opacity + 0.1; //不透明度增加幅度为5% if (this.Opacity == 1) //如果窗体的不透明度为1,则计时器控件timer2不可用并关闭窗体 { timer2.Enabled = false; this.Close(); } } } }