Hi,
A while ago I designed a small subroutine that would allow me to fade forms in and out. The effect is very nice and adds a bit of sleekness to your application. There is also a C# version, this can be found in the C# codebank here
This subroutine can be called like this:Code:Sub FormFade(ByVal FType) Select Case FType Case ("in") Dim FadeCount As Integer For FadeCount = 10 To 90 Step 10 Me.Opacity = FadeCount / 100 Me.Refresh() Threading.Thread.Sleep(50) Next Case ("out") Dim FadeCount As Integer For FadeCount = 90 To 10 Step -10 Me.Opacity = FadeCount / 100 Me.Refresh() Threading.Thread.Sleep(50) Next End Select Me.Opacity = 99 End Sub
FormFade("in") for fading your form in
FormFade("out") for fading your form out
The form fade in can be implemented on your Form Load event handler like so:
The form fade out can be implemented on your Form Closing event handler as it will catch all attempts to close, not just ones you might add to your Command Button. This can be implemented like this:Code:Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load FormFade("in") End Sub
Additional InformationCode:Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing FormFade("out") End Sub
This should work with all versions of .net
As you have seen I have set Me.Opacity = 99. This is for two reasons. One being that the fade in effect does not fully reach the 100/99% so the form does not look solid. The second is that if fading out with 100% opacity the form will glitch slightly. You will notice no difference between 99% and 100% opacity though.
I'd love to know what you think of this, yes it's not original, but for those looking for something like this, I think it is a good little script.




Reply With Quote