Problem mit Form1 aktualisierung

Hallo alle zusammen,

vielleicht könnt ihr mir helfen.
Ich habe in einem „Form1“ einige Informationen die bei „Form1.Load“ über eine Methode abgerufen und danach angezeigt werden.
Die Änderungen dieser Infos erledigt ein „Form2“ in denen der Benutzer seine Eingabe tätig und danach das Form2 wieder schließt. Beim schließen werden die Infos in eine XML Datei geschrieben die von Form1 gelesen wird.

Nun die Frage: Wie kann ich nach Schliessen von Form2 diese neuen Infos in Form1 aktualisieren? Kann ich irgendwo das Form1.Load Event auslösen?

Ich habe es schon mit Form1.Acitvated probiert was auch den gewünschten Effekt bring, doch leider wird diese Event permanent ausgelöst und ist somit ein Ressourcen Fresser da jedes Mal eine Xml Datei gelesen wird obwohl es nur einmal notwendig wäre

Oder gibt es andere Methoden um das zu erreichen?

Vielen Dank im Vorraus

Als Anmerkung: Ich verwende C#

Dave
 
Hallo,

leg dir halt ein Form2.closed- event an. Dann weißt da die Form hat sich geschlossen und kannst dann die XML-DAtei auslesen. Oder mach das Form2 mit ShowDialog() auf, dann ist es modal und es geht erst nach dem Schliessen dieser Form wieder in Form 1 weiter

mfg
wensi
 
Hallo Wensi,

ich habe bereits ein Form.closing angelegt. In dem die Daten in die XML datei geschriebene werden. Das Form2 ist auch mit ShowDialog geöffnet.
Das ist nciht das Problem.
Das Problem ist wie Kann ich von Form2 aus Form1 mitleiten das es das Event Load auslösen soll? Oder es geht bestimmt auch mit anderen Event, Acitvated macht genau das was ich brauch, bloss mit dem Nachteil das es alle sek ausgelöst wird und es keinen Sinn macht, da das Lesen nur einmal erfoderlich ist.

Danke
 
Hallo,

dann mach dir halt ein Event in Form2 das du in Form1 initialisierst. Wenn nun Form1 das Load ausführen soll, dann musst du nur dieses Event auslösen. Das ruft dann die entsprechende Handlermehtode in Form1 auf und alles ist gut.

Evtl. versteh ich auch was vom Ablauf falsch, wie du das haben willst

mfg
wensi
 
Hast du irgendein beispiel für mich wie ich das Event Form1.Load auslöse?

Damit wäre mir sehr geholfen.

Ich habe es mit :

Form1 frm1 = new Form1();
frm1.Load();

probiert geht aber nicht da er mit "new" eine neue Instanz aufruft, ich brauche aber die schon vorhandene....


Danke im vorraus.

Dave
 
Ok habe die Lösung von "crazy-Weasel" erfahren

Einfach nach dem aufruf von Form2.ShowDialog die entsprechende "Aktualisierung" Funktion ausführen und Fertsch.

Form2.ShowDialog;
StarteForm1Aktualisierung();

Dank nochmal an Crazy-Weasel....


Dave
 
Warum gibt Form2 nicht gleich das passende Objekt mit zurück?
Oder warum wird das Objekt nicht an Form2 übergeben.

Da Klassen by reference übergeben werden hätte auch Form1 gleich die passenden Einstellungen.

Und Xml Parsen wäre wirklich blos beim ersten Start des Forms von nöten.
 
Warum gibt Form2 nicht gleich das passende Objekt mit zurück?
Oder warum wird das Objekt nicht an Form2 übergeben.
Da Klassen by reference übergeben werden hätte auch Form1 gleich die passenden Einstellungen.
Und Xml Parsen wäre wirklich blos beim ersten Start des Forms von nöten.

1. Form2 hat keinen Einfluss auf Form1 --> sie arbeiten unabhänig.
Ich brauch keine Objekte an Form2 zu übergeben weil sich Form2 diese von der Xml
datei holt.
Die Form1 und Form2 teilen sich eine Informationsquelle --> die von XML.
Ich öffne lediglich Form2 von Form1 aus....

Oder hab ich was falsch verstanden, dann bitte ein beipiel dazu, wäre nett.
 
Wenn ich dich richtig verstanden habe hält die Xml ja bestimmte Einstellungen.
Und ich denke mal du besitzt dafür ein Objekt (Klasse).

Wenn nicht solltest du vielleicht spätestens hier dir ein Objekt überlegen.

Beim Load Ereignis von Form1 lädst du normal deine Einstellungen (ins Objekt).

Form2 ist ja, wenn ich richtig verstanden haben, eine Oberfläche um die Einstellungen zu ändern.

Hier könntest du, z.B. im Konstruktor als Parameter, dein Objekt aus Form1 übergeben.
Im Form2 werden dann normal die Eigenschaften des Objektes aus Form1 gesetzt/geändert.

Beim schließen von Form2 könntest du nun die Einstellungen in der Xml wieder speichern.
Bräuchtest aber nicht die Xml neu auslesen da du ja schon dein Objekt hast.

Wie gesagt Klassen werden by reference übergeben.
Sprich im Prinzip wird nur die Speicheradresse weitergegeben und du arbeitest immer mit dem gleichen Objekt.
 
Hallo Spyke,

an dem Punkt gebe ich dir recht, werde sehen was ich diesbezüglich einbauen kann.
Das Problem welches ich als "Anfänger" habe, immer einzuschätzen welche nun das beste ist bzw nicht notwendig.
Natürlich ist eine Übergabe per Referrenz Speichertechnisch günstiger als die Datei neu zu laden und diesen einen wert darüber zu holen.

Bloss wie viel Speicher verbraucht am ende meine Version mehr als deine? Kann man irgendwie mit irgendwas die Performance verschiederner Systeme bzw Verfahrensweisen herausbekommen?

Das wäre mal ein Intersanter Punkt für mich?
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück