954,505 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?

Simple Form Fade (C# version)

By Quinton Zinn on Jan 18th, 2011 12:51 am

Using the Load and Unload events of the Forms add these subs to handle a simple fade in and out effect. This is not limited to just one form. The subroutine definition can be added to any global class allowing the use on any form or sub-form.

This is the converted post from my VB.NET Snippet

//Handle Fade in of form
private void Form1_Load(System.Object sender, System.EventArgs e)
{
	fade_in();
}

//Handle Fade Out of form
private void Form1_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e)
{
	fade_out();
}

//Fade in
public void fade_in()
{
	for (FadeIn = 0.0; FadeIn <= 1.1; FadeIn += 0.1) {
		this.Opacity = FadeIn;
		this.Refresh();
		System.Threading.Thread.Sleep(100);
	}
}


//Fade out:
public void fade_out()
{
	for (FadeOut = 90; FadeOut >= 10; FadeOut += -10) {
		this.Opacity = FadeOut / 100;
		this.Refresh();
		System.Threading.Thread.Sleep(50);
	}
}

// function to force a form to fade
// credit to Unhdled Exception
private void FadeForm(float TotalSeconds)
{
	if (TotalSeconds == 0) {
		this.Opacity = 1;
		return;
	}

	double then = DateAndTime.Timer;
	double difference = 0;

	//difference is the percentage of the total seconds elapsed
	while (difference < 1) {
		this.Opacity = difference;

		difference = (DateAndTime.Timer - then) / TotalSeconds;
		System.Threading.Thread.Sleep(10);
	}
}

Oh thanks for responding to my request

stevanity
Posting Whiz in Training
293 posts since Oct 2010
Reputation Points: 43
Solved Threads: 28
 

Intresting contribution.

ddanbe
Senior Poster
3,829 posts since Oct 2008
Reputation Points: 2,070
Solved Threads: 661
 

BUt the fade effect isnt smooth. The For Loop is dependent on the processor. So sometimes it is running slowly and sometimes it runs fast.
Any idea to smooth it up?

stevanity
Posting Whiz in Training
293 posts since Oct 2010
Reputation Points: 43
Solved Threads: 28
 

Change the thread.sleep count to a smaller number, decreasing the number of visible ticks. The sleep command causes a pause effect in the code decreasing this will shorten the pause.

zinnqu
Junior Poster in Training
86 posts since Jun 2009
Reputation Points: 21
Solved Threads: 15
 

Alternative: This Alternative will allow you to set the fade effect with the System.Windows.Forms.Timer.Interval value rather than using the Thread.Sleep method for a slightly better performance. On the System.Windows.Forms.FormClosingEvent, it cancels the close and redirects the close event thru the System.Windows.Forms.Timer.TickEvent. There is also a built in ImageHandler that uses List. The ImageHandler has a Base64String added to the first(0 th) position within the list, Then the Image within the ImageHandler returns the first Base64String and converts it to an Image using a System.IO.MemoryStream

public partial class frmSplashScreen : Form
    {
        private IContainer fader = new Container();
        private double FadeInEffect;
        private Timer FadeIn_FadeOut;
        private ImageHandler SplashScreenImage = new ImageHandler();
        private bool FadeIn;        
        private const string SplashImage = "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";
        private bool Closeable;

        public frmSplashScreen()
        {            
            InitializeComponent();
            FadeIn_FadeOut = SplashScreen(fader);
            this.FadeIn_FadeOut.Enabled = true;
            this.BackgroundImage = SplashScreenImage.SplashImage();
            this.FadeIn_FadeOut.Tick += new System.EventHandler(FadeInOut_Tick);
            FadeIn = true;
            this.Opacity = 0;
        }

        private Timer SplashScreen(IContainer container)
        {
            return new Timer(container);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.SuspendLayout();
            // 
            // frmSplashScreen
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.BackColor = System.Drawing.Color.White;
            this.ClientSize = new System.Drawing.Size(320, 240);
            this.Name = "frmSplashScreen";
            this.Text = "Form1";
            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmSplashScreen_FormClosing);
            this.ResumeLayout(false);

        }

        #endregion

        internal class ImageHandler : List<string>
        {
            internal ImageHandler()
            {
                this.Add(frmSplashScreen.SplashImage);
            }
            internal protected Image SplashImage()
            {
                return Image.FromStream(new MemoryStream(Convert.FromBase64String(this[0])));               
            }
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing && (fader != null))
            {
                fader.Dispose();
            }
            base.Dispose(disposing);
        }

        

        private void FadeInOut_Tick(object sender, EventArgs e)
        {
            if (FadeIn)
            {
                FadeInEffect += 0.1;
                DoFadeIn();
            }
            else
            {
                FadeInEffect -= 0.1;
                DoFadeOut();
            }
        }

        private void DoFadeOut()
        {
            if (FadeInEffect <= 1.1 && FadeInEffect > 0)
            {
                this.Opacity = FadeInEffect;
                this.Refresh();
            }
            else if (FadeInEffect <= 0)
            {
                Closeable = true;
                Application.Exit();
            }
        }

        private void DoFadeIn()
        {
            if (FadeInEffect <= 1.1)
            {
                this.Opacity = FadeInEffect;
                this.Refresh();
            }
            else
            {
                FadeIn_FadeOut.Enabled = false;
            }
        }

        private void frmSplashScreen_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (!Closeable)
            {
                e.Cancel = true;
                FadeIn = false;
                FadeIn_FadeOut.Enabled = true;
            }
        }        
    }
CsharpChico
Junior Poster in Training
72 posts since May 2010
Reputation Points: 12
Solved Threads: 8
 

wow a lots of blue line in splash image

abelLazm
Postaholic
2,113 posts since Feb 2011
Reputation Points: 219
Solved Threads: 124
 
wow a lots of blue line in splash image

yeah that can be taken out and read from a resource file just included this way for the snippet

CsharpChico
Junior Poster in Training
72 posts since May 2010
Reputation Points: 12
Solved Threads: 8
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You
View similar articles that have also been tagged: