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 :
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 :
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'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.