Ultime notizie
Home » Programmazione » .Net Framework » Visual C# (C sharp) » Visual C#: Come creare una splash screen con Windows Forms 2.0
Mentre creare una splash screen con Visual Basic .Net è un'operazione molto semplice, infatti basta definire nelle proprietà del progetto quale form è la splash, con C# è necessario crearsi una classe (nell' esempio ho chiamato la classe MyApplication) che derivi da WindowsFormsApplicationBase. Questa classe è presente nell'assembly Microsoft.VisualBasic.dll, pertanto sarà necessario aggiungelo come riferimento al progetto

Visual C#: Come creare una splash screen con Windows Forms 2.0

Mentre creare una splash screen con Visual Basic .Net è un’operazione molto semplice, infatti basta definire nelle proprietà del progetto quale form è la splash, con Visual C# è necessario crearsi una classe (nell’ esempio ho chiamato la classe MyApplication) che derivi da WindowsFormsApplicationBase. Questa classe è presente nell’assembly Microsoft.VisualBasic.dll, pertanto sarà necessario aggiungelo come riferimento al progetto.

Una volta creata la classe MyApplication sostituiamo la chiamata alla creazione della main form nel metodo statico Main di Program con la nostra classe in questo modo :

static class Program
{
    [STAThread]
    static void Main()
    {
        MyApplication application = new MyApplication();
        application.Run(new string[] { });
    }
}

La classe MyApplication deve obbligatoriamente definire quale sarà la form princiale (main form) che dovrà essere richiamata all’avvio del programma.
Quindi sarà necessario fare l’override del metodo OnCreateMainForm come di seguito :

public class MyApplication : WindowsFormsApplicationBase
{
    protected override void OnCreateMainForm()
    {
        this.MainForm = new MainForm();
    }
}

a questo punto, per definire la splash screen è sufficiente fare l’override del metodo OnCreateSplashScreen indicando la form da visualizzare all’avvio :

public class MyApplication : WindowsFormsApplicationBase
{
    protected override void OnCreateMainForm()
    {
        this.MainForm = new MainForm();
    }

    protected override void OnCreateSplashScreen()
    {
        this.SplashScreen = new SplashScreen();
    }
}

In questo modo la splash screen verrà visualizzata sino a quando la main form non ha completato il caricamento.
Qualora fosse richiesto un tempo di visualizzazione maggiore è possibile definirlo attraverso la proprietà MinimumSplashScreenDisplayTime nell’inizializzazione :

publicl class MyApplication : WindowsFormsApplicationBase
{
    //....

    protected override bool OnInitialize(System.Collections.ObjectModel.ReadOnlyCollection<string> commandLineArgs)
    {
        // Si visualizza per 3 secondi
        this.MinimumSplashScreenDisplayTime = 3000;
        return base.OnInitialize(commandLineArgs);
    }
}

In questo esempio il tempo di caricamento della form principale è sotto i 3 secondi allora la splash screen rimarrà visualizzata per 3 secondi, altrimenti per il tempo necessario alla form principale di attivarsi.



About Luigi Melisi

Analista Programmatore Senior, Team Leader in svariati progetti, con esperienza decennale in analisi, progettazione e sviluppo di software gestionale desktop e web, di E-Commerce e sistemi di Content Management System.In questi anni ho utilizzato in prevalenza tecnologie Microsoft (Visual C#, ASP.NET, SQL Server, Visual Studio, Windows Mobile, ecc.) e programmazione orientata agli oggetti, ma ho maturato esperienza anche in altre tecnologie come Java e PHP.Attualmente mi occupo di consulenza informatica, di sviluppo software gestionale personalizzato, realizzazione di Siti Web, di sistemi di Content Management System. ed E-Commerce su misura del cliente.

Check Also

Microsoft annuncia di voler aprire i compilatori C#

Microsoft ha annunciato che in futuro è intenzionata a rilasciare sotto licenza open i compilatori …

Lascia un commento

%d blogger hanno fatto clic su Mi Piace per questo: