Hallo Leute ich wollte grade etwas ganz simples machen, ich wollte 2 Formen haben die erste Form zum einstellen des Programms und die zweite zum ausführen.
Sollte so aussehen:
hier der Code:
private void Form2_Load(object sender, EventArgs e)
{
this.Hide();
Form1 form = new Form1();
form.Show();
}
Ich wollte das die zweite Form zum Hauptfenster wird da ich will das der Benutzer das Programm auch über die obere Leiste beenden kann und ich das Template schon fertig gemacht habe und dachte der Schritt würde 10 Sekunden dauern ... aber ganz komisch 😮
im Program.cs hab ich das noch umgestellt:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace Game_Problem_Fixer
{
static class Program
{
/// <summary>
/// Der Haupteinstiegspunkt für die Anwendung.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form2());
}
}
}
Ich bin neu hier, und deshalb etwas unerfahren wenn du hilfreiche Tipps bezüglich dem lernen von C# hast lass sie mich wissen !
Das die Form nicht verschwindet bzw das Hide nicht funktioniert, online steht das es überschrieben wird von einem Dialog der aufgerufen wird wenn eine Form erstellt wird aber ob das stimmt ka ... ich glaube früher ging das um einiges einfacher
Ich bin neu hier, und deshalb etwas unerfahren wenn du hilfreiche Tipps bezüglich dem lernen von C# hast lass sie mich wissen !
Google sagt dazu (http://stackoverflow.com/questions/7003587/why-isnt-this-hide-working-in-form1-load-event), dass das Load Event zum tragen kommt, bevor das Form überhaupt angezeigt wird.
Wenn du es hier verstecken willst, wird das "anzeigen" später noch einmal getriggert und wird dein Verstecken überschreiben.
Musst du zwingend das Form hier schon erzeugen?
Reicht es nicht, dass später zu tun, wenn du es wirklich brauchst?
Ich müsste halt die Form die nicht als Start Form gilt oben per Leite (X Button) schließen können, kann man das im laufe des Programms irgendwie machen ?
Ich bin neu hier, und deshalb etwas unerfahren wenn du hilfreiche Tipps bezüglich dem lernen von C# hast lass sie mich wissen !
WPF verwenden 😉
Es gibt verschiedene Möglichkeiten, das was mir auf Anhieb einfällt:
a) Das Programm fällt nach schließen der letzten Form zurück in die statische Main()
b) Das Schließen Event des Form abbonieren
c) Ein anderes Event zum verstecken nutzen (z.B. Show)
Was wäre die kürzeste Variante die keine Nebenwirkungen hat ? Oder keine großen
Ich bin neu hier, und deshalb etwas unerfahren wenn du hilfreiche Tipps bezüglich dem lernen von C# hast lass sie mich wissen !
Das müsstest du dir selber beantworten können.
Wenn du einfach nur das Event änderst, sollte es die wenigsten Auswirkungen haben.
Ich mach das genauso. Sollte klappen.
Ich benutze nur this.Visible = false; statt this.Hide();
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Ein Formular verstecken noch bevor es angezeigt wird sieht nicht nach einem guten Plan aus. Warum erzeugst du nicht das Formular das tatsächlich zu sehen sein soll?
Beschreib mal verständlich was passieren soll und warum es passieren soll. Dann fällt sicher jemandem etwas ein.
Doku: Ereignisreihenfolge in Windows Forms
Dort sieht man schon direkt, wann die Visible Eigenschaft wohl geändert wird (da gibt es auch ein Event).
Eine Möglichkeit wäre, diesen Einstellungs-Dialog auch als einen Dialog zu öffnen (als modales Fenster) mit ShowDialog
.
Ein Formular verstecken noch bevor es angezeigt wird sieht nicht nach einem guten Plan aus. Warum erzeugst du nicht das Formular das tatsächlich zu sehen sein soll?
Bei mir kommt das vor wenn man dem Programm ein Parameter für eine automatische Aktion mitgibt.
Das Hauptfenster wird unsichtbar gemacht und das Fenster das die gewünschte Aktion durchführt angezeigt. Nach Beendigung ohne Fehler wird alles wieder geschlossen.
Beispiele : Datenbank-Backup, Backup in die Cloud, EDI-Import, Reorganisation.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Ein Formular verstecken noch bevor es angezeigt wird sieht nicht nach einem guten Plan aus. Warum erzeugst du nicht das Formular das tatsächlich zu sehen sein soll?
Bei kommt das vor wenn man dem Programm ein Parameter für eine automatische Aktion mitgibt.
Das sieht immer noch nicht nach einem guten Plan aus. Wenn das Hauptfenster nicht gebraucht wird, warum es erzeugen?
Einstiegspunkt -> Befehlszeilenargumente prüfen -> korrektes Fenster erzeugen -> es seine Arbeit tun lassen (Fortschrittsanzeige des autom. gestarteten Exports, was auch immer, oder eben Hauptfenster) -> Ende.
LaTino
"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)