Автор:
Неизвестно | добавлено: 06.03.2010, 16:55 | просмотров: 5328 (1+) | комментариев:
0 | рейтинг:
x6
'*******************************************************************
'Эффект плавного исчезновения формы при закрытии
'Просто вставьте этот код, как есть. При закрытии формы, форма будет плавно исчезать.
'http://vbnet.su - Visual Basic .NET. Статьи. Примеры. Форум.
'*******************************************************************
Private m_UseFormFade As Boolean = False
Private m_FadeSpeed As Integer = 30I
#Region " FormFade Stuff "
Private m_FormFadeDir As FadeDir = FadeDir.FadeIn
Private m_FormHasFadedOut As Boolean = False
Private WithEvents m_Timer As New Timer
Private Enum FadeDir
FadeIn = 0I
FadeOut = 1I
End Enum
#End Region
#Region " Main Form: FormClosing, Load, Shown "
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If Not (m_Timer Is Nothing) AndAlso m_FormHasFadedOut = False Then
e.Cancel = True
m_Timer.Start()
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If m_UseFormFade = True Then
Me.Opacity = 0.0R
m_Timer = New Timer()
m_Timer.Interval = m_FadeSpeed
End If
End Sub
Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
If Not (m_Timer Is Nothing) Then m_Timer.Start()
End Sub
#End Region
#Region " FormFadeTimer "
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub FormFadeTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m_Timer.Tick
Select Case m_FormFadeDir
Case FadeDir.FadeIn
Me.Opacity += 0.05R
Case Else
Me.Opacity -= 0.05R
End Select
If Me.Opacity <= 0.0R OrElse Me.Opacity >= 1.0R Then
m_Timer.Stop()
If m_FormFadeDir = FadeDir.FadeIn Then
m_FormFadeDir = FadeDir.FadeOut
m_FormHasFadedOut = False
Else
m_FormHasFadedOut = True
Me.Close()
End If
End If
End Sub
#End Region