private void timer_Tick(object sender, EventArgs e)
{
double fadeChangePerTick = timer.Interval * 1.0 / 1000 / fadeTime;
if (Math.Abs(targetOpacity - this.Opacity) < fadeChangePerTick)
{
if (targetOpacity == 1) this.Opacity = .999;
else this.Opacity = targetOpacity;
base.WndProc(ref heldMessage);
heldMessage = new Message();
timer.Stop();
}
else if (targetOpacity > this.Opacity) this.Opacity += fadeChangePerTick;
else if (targetOpacity < this.Opacity) this.Opacity -= fadeChangePerTick;
}