Hallo,
Ein paar Freunde und ich arbeiten an einem ziemlich komplexen Programm in C #.
Beim Start öffnet sich ein Logo und die Buttons Start & Beenden. Beenden ist selbsterklärend, Start lässt das Logo verblassen und öffnet die Hauptform. Das sieht dann so aus:
Code:
for (double i = 100; i >= 0; i--)
{
this.Opacity = i / 100;
System.Threading.Thread.Sleep(5);
}
Form weiter = new Form1();
weiter.Show();
Blöd ist nur, wenn ich jetzt die Hauptform schließe, schließt er nicht das ausgeblendete Logo ShowInTaskbar ist auf false, das heißt der Benutzer merkt davon nichts, außer er schaut im Taskmanager nach.
Blöd ist es trotztem.
Wenn ich am oben gezeigtem Code ein this.close(); dranhänge, schließt er die Hauptform mit
Kennt jemand ne Möglichkeit nachdem das Logo ausgeblendet worden ist ihn auch zu schließen?
Danke
EDIT:
Das Logo ist eine Picturebox auf einer Form die genauso groß ist, und FormBorderstyle auf none gestellt hat
Die Überschrift sagt es im Prinzip schon. Es ist logisch, dass wenn du das "Hauptobjekt" des Programms schließt auch alle seine, von ihm erzeugten Fenster verschwinden. Dein von dir verwendetes Wort "Hauptform" ist also hier auch fehl angebracht, da die eigentliche "Hauptform" das Startfenster am Anfang ist. Wenn du das schließt, schließen sich meines Wissens alle von ihm erzeugten Fenster, unabhängig der Aufrufmethode ( ShowDialog, Show).
Eine sehr einfach zu implementierende Alternative, wären zwei unabhängig voneinander Agierende Programme in zwei Prozessen.
Prozess 1: Startprogramm startet Prozess zwei und schließt sich danach wieder
Prozess 2: Hauptprogramm
Nur mal so aus Interesse: Um was für ein Projekt handelt es sich denn , wenn man fragen darf ?
Das mit meiner falschen Beschriftung stimmt
Wie setze ich das denn um, mal so am Rande..
Und ja, das Programm wird für meine Klasse. Es gibt immer den aktuellen Stundenplan aus, Speichert Notizen, Hausaufgaben, stellt einen Taschenrechner mit wissenschaftlichen Funktionen berreit, einen Webbrowser und ein kleines Spiel ist in Arbeit Natürlich alles von uns programmiert^^
Hier mal ein Screenshot: (Nur vom Logo) Wenn es fertig ist, lade ich es bestimmt hoch
Nur der Vollständigkeit halber: Es geht natürlich auch anders. Aber das würde zu weit führen. Den Vorschlag, den ich hier gemacht habe umzusetzen geht am einfachsten indem du schlicht und ergreifend 2 Projekte machst. Eins ist das Startfenster und das andere ist euer Hauptprogramm.
Startfenster->Code für Transparenz etc, Starten von schuelerapp.exe, Beenden des Startfensterprogrammes( this.close )
Das wäre relativ schnell umzusetzen und am Code müsste auch nicht sonderlich viel geändert werden. Hätte trotzdem noch eine kleine Anregung. Die Regelung des Transparenzintervalles durch Thread.Sleep ist natürlich eine gute Idee, aber besser und erweiterbarer wäre es, wenn du es mit der Timer Komponente von WinForms machst. Viel Spaß noch mit eurem Projekt! Da habt ihr euch ganz schön was vorgenommen. Wissenschaftlicher Taschenrechner ist enorm schwer, insbesondere wenn es ums Gleichungen lösen geht.
Wissenschaftlicher Taschenrechner ist enorm schwer, insbesondere wenn es ums Gleichungen lösen geht
Das ist wohl war, aber Herrausforderungen sind toll, auch wenn ich jetzt schon scheitere
Soooo weit sind wir jetzt in Programmieren auch noch nicht, daher, wie starte ich den die .exe?
Ach ja, alles bis auf den Taschenrechner ist schon fertig
Und danke!
Wofür wollt ihr denn überhaupt solch einen Ladebildschirm? Startet doch einfach das Hauptprogramm, blendet euren Ladebildschirm ganz oben ein und ladet dann alles weitere im Hintergrund.
Ihr habt einen Webbrowser geschrieben? Selbst die Implementierung des HTTP-Protokolls und eine HTML-Rendering-Engine sind extrem aufwändig.
Für einen fortgeschrittenen Taschenrechner ist eventuell diese Aufgabenreihe interessant: "Aus klein mach groß": Teil1 - Stack
Aber ein Computer-Algebra-System werdet ihr damit nicht umsetzen können.
@Spyx Ich vermute sehr stark, dass sie einfach die Internet Explorer Komponente von Wforms genommen haben. Drag and Drop
Davon gehe ich auch stark aus. Aber dann sollte man nicht schreiben, dass es einen Webbrowser gäbe und alles von ihnen programmiert sei .
Vor allem finde ich es nicht sinnvoll noch einmal die Trident-Engine in irgendein Programm zu importieren. Für einen Webbrowser gibt es extra Programme, die dafür wesentlich besser geeignet sind (z.B. Firefox, Internet Explorer, Chrome, etc.).
Ach Leute..
Ja, zodiac hat recht, das ist die IE Kopie
Aber lasst uns unseren Spaß, wir lernen erst seit 3 Monaten programmierung und sind stolz darauf, denn der Rest ist wirklich NUR von uns programmiert
Und.. Learning by doing
Übrigends danke Spyx für den Link
EDIT:
Das mit der .exe starten haben wir hinbekommen