Banner

Chiusura artistica di una Form

Avete mai pensato di voler cambiare il processo di chiusura di una form?
Magari riproducendo un effetto in cui le dimensioni della finestra si riducono lentamente in modo analogo al movimento di un'otturatore di una macchina fotografica.
Ho pensato che fosse una cosa divertente e ho scritto alcune righe di codice che fanno esattamente quanto descritto.

Metodo 1: chiusura della form riducendo le dimensioni e mantenendo la forma rettangolare.

   Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) _
    Handles Me.FormClosing

        Do

            Me.Size = New Size(Me.Width - 1, Me.Height - 1)

        Loop Until Me.Height < 40

    End Sub

Metodo 2: chiusura della form rendendo la finestra trasparente.

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) _
    Handles Me.FormClosing

        Dim diametro As Integer = Me.Width
        Dim nuovaSagoma As Region
        Dim formaSagoma As Drawing2D.GraphicsPath

        Do

            formaSagoma = New Drawing2D.GraphicsPath()
            formaSagoma.AddEllipse(0, 0, diametro, diametro)
            nuovaSagoma = New Region(formaSagoma)
            Me.Region = nuovaSagoma
            formaSagoma.Dispose()
            diametro -= 1

        Loop Until diametro < 10

    End Sub

In entrambi i metodi viene sfruttato l'evento FormClosing, momento adatto per inserire il codice per la manipolazione delle dimensioni della form stessa, in quanto si attiva nell'istante in cui viene richiesta la chiusura della finestra ma prima che questa si chiuda totalmente.
Con il primo metodo, usando un banale ciclo, si riducono gradualmente le dimensioni della form fino al minimo possibile e poi si chiude il processo.
Con il secondo metodo, non ne riduciamo le dimensioni, bensì aumentiamo la sua superficie trasparente, fino al punto in cui è totalmente invisibile alla vista dell'utente, quindi procediamo con la chiusura.
Ovviamente entrambi i sistemi sono migliorabili e con un pò di fantasia si possono ottenere effetti interessanti.
Buon divertimento!!!

Siti Ufficiali Editor Free Guide Online Utility
Microsoft Visual Studio MSDN InnoSetup
Apple XCode Documentazione .Net Cyber Installer
Oracle NetBeans Apple Developer NSIS
Debian Eclipse W3C Diagram Online
Distrowatch Bluefish W3C Validator Junior Icon Editor
Brackets W3Schools Edit Cursors Online
TextWrangler

Sito realizzato da Fiaschi Francesco - Aggiornamento Dicembre 2018

W3C - XHTML 1.1 Validated