Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Opacity of Forms in C#

0.00/5 (No votes)
2 Sep 2008 1  
Learn more about changing the opacity of forms, using C#.

Introduction

In C#, we can access the opacity of a Windows Form using the Opacity property. This article shows you how we can change it, using a simple project.

Using the code

System.Windows.Forms.Timer

We'll try to implement a fade-in and fade-out effect on our WinForm. To do that, we use System.Windows.Forms.Timer.

We will use three Timers in our project:

  • TimerFadein: Shows the fade-in effect. TimerFadein runs the following method on its Tick event.
  • private void TimerFadein_Tick(object sender, EventArgs e)
    {
        //Prevents Timers overlapping 
        if (timerHalfFadeOut.Enabled || TimerFadeout.Enabled)
        {
            TimerFadein.Enabled = false;
            return;
        }
        timerRunning = true;
        //\\
        this.Opacity += 0.05;
        if (this.Opacity >= 0.95)
        {
            this.Opacity = 1;
            timerRunning = TimerFadein.Enabled = false;
        }
        maskedTextBoxOpacity.Text = (this.Opacity * 100).ToString();
        hScrollBar1.Value = (int)(this.Opacity * 100);
    }
  • TimerFadeout: Shows the fade-out effect. TimerFadeout runs the method below on its Tick event.
  • private void TimerFadeout_Tick(object sender, EventArgs e)
    {
        //Prevents Timers overlapping
        if (timerHalfFadeOut.Enabled || TimerFadein.Enabled)
        {
            TimerFadeout.Enabled = false;
            return;
        }
        timerRunning = true;
        //\\
        this.Opacity -= 0.05;
        if (this.Opacity <= 0.05)
        {
            this.Opacity = 0;
            Application.ExitThread();
        }
        maskedTextBoxOpacity.Text = (this.Opacity * 100).ToString();
        hScrollBar1.Value = (int)(this.Opacity * 100);
    }
  • timerHalfFadeOut: Shows a 0.5 opacity and a fade-out effect. timerHalfFadeOut runs the method below on its Tick event.
  • private void timerHalfFadeOut_Tick(object sender, EventArgs e)
    {
        //Prevents Timers overlapping
        if (TimerFadeout.Enabled || TimerFadein.Enabled)
        {
            timerHalfFadeOut.Enabled = false;
            return;
        }
        timerRunning = true;
        //\\
        this.Opacity -= 0.05;
        if (this.Opacity <= 0.50)
        {
            this.Opacity = 0.5;
            timerRunning = timerHalfFadeOut.Enabled = false;
        }
        maskedTextBoxOpacity.Text = (this.Opacity * 100).ToString();
        hScrollBar1.Value = (int)(this.Opacity * 100);
    }

Running the WinApp with a fade-in effect

To show our app with a fade-in effect, we must change the opacity of our Form to zero in the constructor. We must enable TimerFadein too, to show our WinApp with a fade-in effect.

public Form1()
{
    InitializeComponent();
    this.Opacity = 0;
    TimerFadein.Enabled = true;
}

Well, other things (like closing the WinApp and the fade-out effect) are very similar to the above method. We only need to enable or disable the timers. See the source code for more details.

Good luck!

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here