terminatorthree
Goto Top

C Sharp auf Form warten

Hallo liebe Gemeinde. Da ich nicht wirklich weis wonach ich suchen könnte, hoffe ich auf euch!

Hallo,

ich schreibe gerade an einem Visual C# Projekt. Bei Laden des StartUP Forms wird automatisch ein weiteres Form mit geladen. Dies dient zur Abfrage von Einstellungen und funktioniert auch. Was ich nun aber erreichen möchte ist folgendes: Bevor das StartUp Form seine Load Methode weiter ausführt, soll gewartet werden, bis das Einstellungsform wieder geschlossen ist, also alle Einstellungen gemacht sind.

Dazu der Teil meines Quelltextes:
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            new Loader().Show();   //Hier soll gewartet werden, bis Loader wieder geschlossen ist, damit der ConnectionString für SportfestDataSet stimmt

            this.punkte_laufenTableAdapter.Fill(this.sportfestDataSet.punkte_laufen);

            this.punkte_auswertungTableAdapter.Fill(this.sportfestDataSet.punkte_auswertung);

            this.schuelerTableAdapter.Fill(this.sportfestDataSet.schueler);
            
        }
   }


public partial class Loader : Form
  {
        public Loader()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Properties.Settings.Default.SportfestConnectionString = "server=" + textBox1.Text + ";User Id=root;password=;Persist Security Info=True;database=Sportfest";  
            Properties.Settings.Default.Save();
            this.Close();
        }
    }
}

Wenn das hier natürlich kompletter Unsinn ist, sagt mir das bitte, ich möchte an dem Projekt was dazu lernen.

Vielen Dank für Eure Antworten!!
Terminatorthree

Content-Key: 133027

Url: https://administrator.de/contentid/133027

Printed on: April 24, 2024 at 20:04 o'clock

Member: Berrnd
Berrnd Jan 09, 2010 at 11:18:17 (UTC)
Goto Top
Hi,

ich würde das Füllen der TableAdapter in eine weitere void auslagern und die dann beim beenden der Einstellungsform ausführen.

Wenn Du es wirklich alles in der Load-Methode haben willst, könntest Du evtl. auch in einer Schleife einfach den Visible-State der Einstellungsform abfragen, und wenn die dann "Visible = False" ist, weitermachen.

Gruß
Bernd
Member: dgLAeS
dgLAeS Jan 09, 2010 at 11:39:14 (UTC)
Goto Top
Hallo,
Hab de Quelltext nicht gelesen,
Aber!
quick&dirty würde ich dir empfehlen das config-Form (called "Einstellungsform ") als Startform zu definieren, und beim schließen das "StartUp Form" zu instanzieren.
Wenn du VS8+ benutzt ist das kein Problem!

Sollte dir das nicht weiterhelfen, sag piep -> dann schau ich mal in den sourcecode.
gruß
Member: Terminatorthree
Terminatorthree Jan 09, 2010 at 11:42:41 (UTC)
Goto Top
Danke erstmal für deine Antwort. Das klingt eigentlich gut. Jetzt stellt sich für mich als Änfänger ber folgende Frage:
Wie rufe ich aus dem Loader Form die Init Methode der Form1?

        private void button1_Click(object sender, EventArgs e)
        {
            Properties.Settings.Default.SportfestConnectionString = "server=" + textBox1.Text + ";User Id=root;password=;Persist Security Info=True;database=Sportfest";  
            Properties.Settings.Default.Save();
            this.Close();
            //????
        }

 private void Form1_Load(object sender, EventArgs e)
        {
            new Loader().Show();            
        }

        private void Init()
        {
            this.punkte_laufenTableAdapter.Fill(this.sportfestDataSet.punkte_laufen);
            this.punkte_auswertungTableAdapter.Fill(this.sportfestDataSet.punkte_auswertung);
            this.schuelerTableAdapter.Fill(this.sportfestDataSet.schueler);
        }

mit Form1.Init gehts irgendwie nicht, weil das sich ja nicht auf die konkrete Instanz bezieht oder?
Member: Terminatorthree
Terminatorthree Jan 09, 2010 at 11:44:00 (UTC)
Goto Top
Das hab ich auch schon probiert, jedoch scheint sich das ganze Programm zu schließen, wenn das Einstellungsform sich dann schließt. Darf sich vielleicht das "Haupt"Form nicht schließen? Oder sollte ich es nur Invisible machen?
Member: Berrnd
Berrnd Jan 09, 2010 at 16:19:04 (UTC)
Goto Top
Hi,

Du hast wahrscheinlich eingestellt dass sich die ganze App beenden soll, wenn das Startformular geschlossen wird.

Ich denke wenn Du die Einstellungsform nur invisible machst, sollte es wie gewünscht funktionieren, ist halt bloss bestimmt nicht die sauberste Lösung...

Gruß
Bernd
Member: Terminatorthree
Terminatorthree Jan 09, 2010 at 16:53:03 (UTC)
Goto Top
Das probiere ich nun einen geschlagenen Nachmittag, aber das blöde Form lässt sich weder Hiden noch Invisible machen!! Naja ich bastel weiter, irgend wann schaff ich das.
Member: Terminatorthree
Terminatorthree Jan 09, 2010 at 19:22:23 (UTC)
Goto Top
ok sry für doppelpost aber ich muss hier noch mal nachhaken:
wo kann ich denn einstellen, das sich die ganze App beenden soll, wenn das Startformular geschlossen wird?
Bin ich heute zu blind? Ich habe nix derartiges gefunden!

Vielen Dank auf jeden Fall an euch beide für eure Mühe!!
MfG Terminatorthree
Member: Berrnd
Berrnd Jan 09, 2010 at 19:34:28 (UTC)
Goto Top
Hi,

als in Visual Studio mit VB ging das immer mit nem Doppelklick auf "My Project"...

Gruß
Bernd
Member: Terminatorthree
Terminatorthree Jan 09, 2010 at 21:11:35 (UTC)
Goto Top
Leider finde ich keinen Punkt, an dem ich einstellen könnte, das das Startformular nicht gleich das ganze Programm schließt. Weis vielleicht jemand genau wo sich diese Einstellung bei C Sharp befindet?


Edit: Unglaublich nach einem ganzen Nachmittag und Abend hab ich was gefunden. Form1 kann das Einstellungsfenster einfach per new Loader().ShowDialog(); aufrufen, dann ist die ganze Sache gar kein Problem mehr, da dieser erst ausgefüllt werden muss bevor die Abarbeitung des Programms fortgesetzt wird.

Nochmals RIESIGEN DANK an alle dir mir hier geholfen haben!!
MfG
Terminatorthree