直接贴代码,实现窗体淡入淡出,原理很简单,就是通过逐渐改变Opacity属性来实现。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Load += new EventHandler(Form1_Load);
this.FormClosing += new FormClosingEventHandler(Form1_FormClosing);
}
void Form1_Load(object sender, EventArgs e)
{
this.Opacity = 0;
Timer tStart = new Timer();
tStart.Interval = 10;
tStart.Tick += new EventHandler(tStart_Tick);
tStart.Start();
}
void tStart_Tick(object sender, EventArgs e)
{
this.Opacity += 0.01;
if (this.Opacity == 1)
{
((Timer)sender).Stop();
((Timer)sender).Dispose();
}
}
void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (this.Opacity > 0)
e.Cancel = true;
Timer tClose = new Timer();
tClose.Interval = 10;
tClose.Tick += new EventHandler(tClose_Tick);
tClose.Start();
}
void tClose_Tick(object sender, EventArgs e)
{
this.Opacity -= 0.01;
if (this.Opacity <= 0)
{
((Timer)sender).Stop();
this.Close();
}
}
private void lbClose_Click(object sender, EventArgs e)
{
this.Close();
}
}