lunedì 31 ottobre 2011

[VB.NET] Alternativa a SplashScreen

Descrizione :
Un'alternativa valida alle SplashScreen.

+ Articolo :

Dal momento che non vado matto per la SplashScreen di VS, riporto qui una mia soluzione alternativa.
La Form principale di avvio dell'Applicazione è FormMain, e tale deve rimanere, mentre FormSplash è la Form di Splash, che viene aperta, gestita e chiusa da FormMain.
Il presente esempio inoltre può essere utile anche come Form di attesa generico, da associare a qualsiasi Form principale.

FormMain deve semplicemente avere un paio di caratteristiche :
1. Un Timer "Timer1" con Interval = 1000 ( 1 secondo ).
2. Proprièta definita a design : Opacity = 0.

--> Codice per FormMain :

Public Class FormMain
 
    Private m_formsplash As FormSplash
    Private m_ticks As Integer
    Private m_splashticks As Integer = 3 'Secondi di permanenza splash
 
    Private Sub FormMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        m_formsplash = New FormSplash
        m_formsplash.Show()
        Timer1.Enabled = True
    End Sub
 
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        m_ticks += 1
        If m_ticks = m_splashticks Then
            Timer1.Enabled = False
            Me.Opacity = 1
            m_formsplash.Close()
        End If
    End Sub
 
End Class

La Classe FormSplash, è una semplice Form, con :
- FormBorderStyle = None
- StartPosition = CenterScreen.

Nessun bisogno di avere una "NotInheritable Class SplashScreen1", nè di impostarla a Form di avvio.
Se si desidera replicare le informazioni contenute di default nella SplashScreen, basta aggiungere 3 Labels in FormSplash con questo codice :
Public Class FormSplash

    Private Sub FormSplash_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If My.Application.Info.Title <> "" Then
            Label1.Text = My.Application.Info.Title
        Else
            'Se il titolo dell'applicazione è mancante, verrà utilizzato il nome dell'applicazione, senza l'estensione
            Label1.Text = System.IO.Path.GetFileNameWithoutExtension(My.Application.Info.AssemblyName)
        End If
        Label2.Text = "Versione {0}.{1:00}"
        Label2.Text = System.String.Format(Label2.Text, My.Application.Info.Version.Major, My.Application.Info.Version.Minor)
        Label3.Text = My.Application.Info.Copyright
    End Sub

End Class

Tutto il resto ( immagine di sfondo, Labels con informazioni aggiuntive, aspetto grafico, e quant'altro ) lo si personalizza come si vuole, come si farebbe su una Form qualsiasi.

+ Fine Articolo.

Un Click su "Mi Piace" è il modo migliore per ringraziare l'autore di questo articolo.



0 commenti:

Posta un commento

Favorites Twitter Facebook Delicious Digg Stumbleupon More

 
Design by Free WordPress Themes Modificato da MarcoGG