Nur auf erstes Activate - Ereignis reagieren

flasherMX

Mitglied
Hallo,

das Topic ist Programm.

Habe eine Form. Sobald diese geladen und sichtbar(!) ist möchte ich automatisch eine weitere Form laden.
Hierbei hab ich es mit dem Form-Load Ereignis probiert, ging aber in die Hose da die erste Form nicht sichtbar war, die zweite aber schon aufgerufen wurde.

Mit dem Activated - Ereignis geht das eigentlich ganz gut nur dass er mir dann immer da rein springt - sprich die 2. Form somit endlosschleifenartig erscheint.

Frage: Wie kann ich es anstellen, dass meine Form1 nur auf das ERSTE Activated - Ereignis reagiert.


mfg FlasherMX

PS: Bin auch gern für altenrativen offen bezüglich des Erscheinen meines zweiten fensters. :)
 
Hi.

PS: Bin auch gern für altenrativen offen bezüglich des Erscheinen meines zweiten fensters.

Bau nen Timer ein, der sich selbst deaktiviert: :-(

Code:
private void tmrTimer_Tick(object sender, EventArgs e)
{
     Form2 frm = new Form2();
     frm.Show();
     this.tmr_Timer.Enabled = false;
}

Lass mich auch gerne eines besseren Belehren. :-(

MfG Alexander12
 
hmm falls du VB.Net benutzt:

Code:
Private first_load As Boolean = True

Private Sub Form1_Activated(blabla) Handles MyBase.Activated
   If first_load = True Then
      form2.Show()
      first_load = false
   End if
End Sub

also ganz banal, eine bool-variable mit True initialisieren, als Bedingung für den Aufruf von Form2 setzen und beim ersten Aufruf eben auf False setzen..
Für C# kenn ich die genaue Syntax leider nicht.. die Logik is aber wohl die gleiche

Allerdings muss ich sagen, dass die Methode mit dem Timer wohl die intelligentere Lösung wäre, da der Timer wirklich nur einmal aufgerufen wird, in meinem Beispiel wird dann wohl ständig die if-abfrage durchgearbeitet.. wollts der Vollständigkeit halber trotzdem mal hier reinposten ;)
 
Zuletzt bearbeitet:
Würde es mit einem Flag nicht genau so gut gehen, und dazu noch Resourcen freundlicher? Das ist eine Frage an die Champs unter uns :)
 
ist der Timer nicht genauso ressourcenfreundlich? oder wird etwa alle paar Sekunden überprüft ob der Timer enabled ist? ^^
 
Hi.

Der Timer nimmt dir soweit Ich weiß (fast) keine Ressourcen weg, brauchst keine Sorge zu haben.
Performaceverlust hast dadurch wahrscheinlich nicht, ausserdem deaktiviert er sich hier ja nach ein paar Millisekunden.. :rolleyes:


MfG Alexander12
 

Neue Beiträge

Zurück