2016-04-02 4 views
-1

Ich bin neu in C# und ich verwende Windows-Formulare.Wie kann ich nach dem Begrüßungsbildschirm in C# ein anderes Formular öffnen?

Ich habe 3 Forms:

  • SpalshScreenForm mit progressBar und Timer

  • MainForm

  • ResultForm

Was ich versuche zu tun ist: Ich möchte if Anweisung in SplashScrreenForm schreiben, die überprüft, ob Example.txt Datei existiert oder nicht, während progressBar geladen wird, und wenn die Datei existiert, möchte ich MainForm öffnen und wenn es nicht existiert will ich Öffnen Sie ResultForm.

Wie im Code gezeigt, starte ich das Programm SpalshScreenForm öffnet und danach schließt es und dann MainForm öffnet. Das Problem ist, dass ResultForm nie geöffnet wird und es scheint, dass die if-Anweisung nicht ausgeführt wird.

Meine Frage ist: Wie kann ich SplashScreenForm öffnen und überprüfen, ob die Dateien vorhanden ist, wenn die Datei vorhanden Ich möchte MainForm öffnen, und wenn es nicht ich will nicht existiert ResultForm öffnen. Ich freue mich auf neue Vorschläge/Ideen zu hören. Bitte hilf mir, dir zu danken.

Program.cs Code:

static class Program 
{ 
    /// <summary> 
    /// The main entry point for the application. 
    /// </summary> 
    [STAThread] 
    static void Main() 
    { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.Run(new MainForm()); 
    } 
} 

Main Code:

public MainForm() 
    { 

     Thread t = new Thread(new ThreadStart(Splash_Screen)); 
     t.Start(); 
     Thread.Sleep(3000); 

     InitializeComponent();   

     t.Abort(); 

    } 
public void Splash_Screen() 
    { 
     Application.Run(new SpalshScreenForm()); 
    } 

SplashScreenForm Code:

public SplashScreenForm() 
    {   
     InitializeComponent(); 
    } 


    private void timer1_Tick(object sender, EventArgs e) 
    { 
     progressBar1.Increment(1); 
     if(progressBar1.Value==100) 
     { 

      if (!File.Exists(@"E:\Example.txt")) 
       { 

        ResultForm _ResultForm= new _ResultForm(); 
        _ResultForm.ShowDialog(); 
       } 

      timer1.Stop();    


     } 
    } 

Antwort

0

In Program.cs, die letzte Zeile

Application.Run(new SplashScreenForm()); 
zu

ändern

Um sicherzustellen, dass der Begrüßungsbildschirm das Startprojekt ist.

Als nächstes ändern Sie die if Anweisung, die zu

für die Existenz von Beispiel.txt im SplashScreenForm Code prüft
if (!File.Exists(@"E:\Example.txt")) 
{ 
    ResultForm _ResultForm= new _ResultForm(); 
    _ResultForm.ShowDialog(); 
} 
else 
{ 
    MainForm _MainForm = new _MainForm(); 
    _MainForm.Show(); 
} 

Dies stellt sicher, dass entweder die ResultForm oder die MainForm an gezeigt, wenn der Begrüßungsbildschirm verschwindet.

+0

@ Yurrit Avonds. Wie wäre es mit dem Thread t = neuer Thread (neuer ThreadStart (Splash_Screen)); im MainForm? Muss ich es löschen? – Kate

+0

Ja, dies würde nur den Startbildschirm wieder anzeigen, wenn Sie das Hauptformular starten. Beachten Sie, dass der Begrüßungsbildschirm nicht mehr parallel mit einem anderen Formular ausgeführt wird. Solange das Hauptformular oder das Ergebnisformular nicht zu lange zum Laden braucht, ist dies kein Problem. –

Verwandte Themen