Ich habe eine Winforms-Anwendung, in der ich 2 Formulare verwende, um alle notwendigen Steuerelemente anzuzeigen. Das erste Formular ist ein Begrüßungsbildschirm, in dem es dem Benutzer sagt, dass es geladen wird. Also verwende ich den folgenden Code:
%Vor%Sobald die Anwendung fertig geladen ist, möchte ich, dass das SplashForm sich versteckt oder an die Rückseite gesendet wird und die Hauptansicht angezeigt wird. Ich verwende derzeit Folgendes:
%Vor%Was ich sehe ist, dass das MainForm angezeigt wird, aber das SplashForm immer noch 'oben' sichtbar ist. Was ich gerade mache ist, auf das MainForm zu klicken, um es manuell nach vorne zu bringen. Irgendwelche Ideen, warum das passiert?
Wenn ich es richtig verstanden habe, sollten Sie einfach Application.Run auf Ihrem Hauptformular verwenden. Zeigen Sie also entweder zuerst Ihren Splash, indem Sie etwas wie:
verwenden %Vor%Und dann schließen Sie es manuell in MySplash, wann immer Sie wollen.
Oder zeigen Sie es in Ihren Hauptformularen Laden Sie den Ereignishandler und warten Sie dann, bis er geschlossen wird oder was auch immer, bis Sie die Load-Methode abgeschlossen haben. (Möglicherweise setzen Sie Visible auf false, bevor Sie es anzeigen und danach wieder auf true.
Ich glaube, dass es ein Designfehler in meinem aktuellen Design sein könnte!
Ich denke, der beste Weg, um das zu erreichen, was ich brauche, ist, dass alles vom MainForm gesteuert wird. So kann ich verwenden:
%Vor%Dies ist dann verantwortlich für das Anzeigen / Aktualisieren / Verstecken des SplashScreen. Auf diese Weise kann ich die notwendigen komplexen Beziehungen mit dem Rest des von der MainForm verwalteten Systems haben.