I was sitting at home, when suddenly I got a request to write a splash form. So I wrote this. It is fairly simple to implement.
Just add a Windows Form to a new Visual Basic Project.
Add a Timer Control to the Form, named ‘theTimer’
Now add two labels, one for a statement, other to show the countdown. I have named them lbl1 and tmrLabel.
Go to its code of the Form and copy and paste this down. I have assumed the form name to be ‘MainFrm’. Run it and you are good to go. All with a fade in and fade out animation. Simple yet efficient. And to the friend who requested, it was a pleasure. :)
'''<summary>
''' A simple Splash Screen with basic fade in and fade out animation
''' A Program by Sarthak Ganguly
''' </summary>
''' Released under GPLv3 License
Public Class MainFrm
'Declaring an Enum with form status
Enum formStatus
formOpening
formShowing
formClosing
End Enum
Dim _formStatus As formStatus = formStatus.formOpening
'You can select the animation speed here( fade in and fade out)
Dim animationSpeed As Double = 0.1
'stayOn is a counter variable
Dim stayOn As Integer = 0
'limit is the time duration for which the form is to remain open
'Here limit is 30 seconds
Dim limit As Integer = 300
'The form closing Event is essential to close the form when the
'fades out completely, that is when the opacity reaches 0
Private Sub MainFrm_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If Me.Opacity = 0 Then
theTimer.Dispose()
Me.Dispose()
End If
End Sub
'The Fade in Animation begins
Private Sub MainFrm_Load(ByVal sender As Object, _
ByVal e As EventArgs) Handles Me.Load
theTimer.Start()
_formStatus = formStatus.formOpening
End Sub
'The Timer operations are done here
Private Sub theTimer_Tick(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles theTimer.Tick
Try
If _formStatus = formStatus.formOpening And Me.Opacity < 1 Then
Me.Opacity += animationSpeed
If Me.Opacity = 1 Then
theTimer.Enabled = False
Call ShowForm()
End If
ElseIf _formStatus = formStatus.formClosing And Me.Opacity > 0 Then
Me.Opacity -= animationSpeed
If Me.Opacity = 0 Then
theTimer.Dispose()
Me.Dispose()
End If
ElseIf _formStatus = formStatus.formShowing Then
If stayOn < limit Then
stayOn += 1
tmrLabel.Text = CInt((limit - stayOn) / 10)
Else
theTimer.Enabled = False
Call Form_close()
End If
Else
theTimer.Enabled = False
End If
Catch ex As Exception
'There should not be any error, but still if there is
'you'll know
Console.WriteLine(ex.Message)
End Try
End Sub
'Sends the formClosing status to the Timer
Private Sub Form_close()
_formStatus = formStatus.formClosing
theTimer.Start()
End Sub
'Allows the timer to show the form for the duration
'required
Private Sub ShowForm()
_formStatus = formStatus.formShowing
theTimer.Enabled = True
theTimer.Start()
End Sub
End Class
You can get the compiled file from here
http://www.wikifortio.com/472019/SplashScreen.zip
I will also post it on sourceforge.net
Comments
Post a Comment
No spam please :)