Domanda

Ho un'applicazione che utilizza 2 forme, una forma principale e di un modulo di apertura viene utilizzato nella seguente configurazione:

public class MainForm : Form
{
    public MainForm()
    {
       SplashScreen splash = new SplashScreen();

       // configure Splash Screen
    }
}


public class SplashScreen
{
    public SplashScreen()
    {
       InitializeComponent();

       // perform initialization

       this.ShowDialog();
       this.BringToFront();
    }
}

NB: modulo principale è creato con il seguente codice:

Application.Run( new MainForm() );

Il problema di cui sopra è che la configurazione di spruzzo non si verifica meno spruzzata viene chiusa con

splash.Close();

solo quando ciò si verifica fa il resto della corsa costruttore MainForm. come posso facilmente fermare questo comportamento bloccando?

È stato utile?

Soluzione

I già risposto a voi con un esempio di lavoro, dall'altro domanda che hai chiesto la stessa cosa:

C # WinForms avvio (Splash) forma non nascondendo

Altri suggerimenti

In generale, è necessario mostrare schermate di avvio su un thread separato, e lasciare che il thread primario proseguire con il caricamento. Non banale - in particolare, è necessario utilizzare Control.Invoke a chiedere la schermata iniziale di chiudersi quando è pronto (affinità di thread) ...

Usa splash.Open () piuttosto che splash.OpenDialog () e questo non accadrà.

In sostanza, si vuole mostrare solo si splash forma, ma non lasciate bloccare la principale forma.

Ecco come ho fatto:

class MainForm : Form {

    SplashScreen splash = new SplashScreen();  //Make your splash screen member

    public MainForm()
    {
        splash.Show();  //Just show the form
    }

}

Poi, nel tuo MainForm_Load fate la vostra inizializzazione come normale.

Ora, quando il modulo è pronto per essere visualizzato (MainForm_Shown):

public MainForm_Shown()
{
    splash.Close();
}

In questo modo il carico MainForm normalmente durante la visualizzazione della schermata iniziale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top