Simple way to add a fade effect

Updated zinnqu 3 Tallied Votes 5K Views Share

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.

AndreRet commented: Nicely done. +6
'Handle Fade in of form
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles MyBase.Load
    fade_in()
End Sub

'Handle Fade Out of form
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    fade_out()
End Sub

'Fade in
Public Sub fade_in()
    For FadeIn = 0.0 To 1.1 Step 0.1
        Me.Opacity = FadeIn
        Me.Refresh()
        Threading.Thread.Sleep(100)
	Next
End Sub


'Fade out:
Public Sub fade_out()
    For FadeOut = 90 To 10 Step -10
        Me.Opacity = FadeOut / 100
        Me.Refresh()
        Threading.Thread.Sleep(50)
	Next
End Sub
AndreRet 526 Senior Poster

Plain and simple, nice.:)

nytro 0 Newbie Poster

This one is nice and simple...!!!!

Thanks man....!!!

zinnqu 7 Junior Poster in Training

Thanx to Unhnd_Exception For a Mod.. Here is a sub that will work for all controls or forms when the form shows. There is a revision issue for the form based on your .NET version and/or the VB Studio version as the libraries handle the code diffrently. Kudos for the Mod!!

Private Sub FadeForm(ByVal TotalSeconds As Single)
    If TotalSeconds = 0 Then
        Me.Opacity = 1
        Exit Sub
    End If

    Dim [then] As Double = DateAndTime.Timer
    Dim difference As Double = 0

    'difference is the percentage of the total seconds elapsed
    Do While difference < 1
        Me.Opacity = difference
          
        difference = (DateAndTime.Timer - [then]) / TotalSeconds
        System.Threading.Thread.Sleep(10)
    Loop

    Me.Opacity = 1

End Sub

Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
    FadeForm(1.5)
End Sub
stevanity 4 Posting Whiz in Training

C# code please..........

zinnqu 7 Junior Poster in Training

Code has been posted in the C# snippet forum today.

vaibhav.garg.9484 0 Newbie Poster

The Simplest Way is ------
(I checked it in vb 2008..)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Timer1.Enabled=True
End Sub

 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    Me.Opacity = Me.Opacity - 0.1R
End Sub
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.