ExplodeForm - Showing a form with an explosion effect
' Show a form with an explosion effect.
' the numSteps parameter is the number of steps to increase the form size from
' 0 to the original size
' the stepDuration argument is the number of milliseconds between each step
' Example:
' Private Sub Form1_Activated(...) Handles MyBase.Activated
' ExplodeForm(Me)
' End Sub
Sub ExplodeForm(ByVal frm As Form, Optional ByVal numSteps As Integer = 25, _
Optional ByVal stepDuration As Integer = 10)
' do nothing if the form is minimized or maximized
If frm.WindowState <> FormWindowState.Normal Then Exit Sub
Dim origLeft As Integer = frm.Left
Dim origTop As Integer = frm.Top
Dim origHeight As Integer = frm.Height
Dim origWidth As Integer = frm.Width
Dim stepHeight = origHeight / numSteps
Dim stepWidth = origWidth / numSteps
Dim newHeight, newWidth As Integer
Dim i As Integer
For i = 1 To numSteps
'calc the new height/width
newHeight += stepHeight
newWidth += stepWidth
' display the form
frm.SetBounds(origLeft, origTop, newWidth, newHeight)
' pause if so is requested
System.Threading.Thread.CurrentThread.Sleep(stepDuration)
Next
' ensure that the form is completely visible
frm.SetBounds(origLeft, origTop, origWidth, origHeight)
End Sub