Entwickler-Ecke
WinForms - Form neu laden
yndaso - Mi 24.06.09 11:59
Titel: Form neu laden
Hallo,
ich lasse in meinem Hauptform einen Konfigurationsdialog (2. Form) aufgehen.
Per Button "ok" wird eine neue xml datei erzeugt, der Konfigurationsdialog schließt sich
anschließend allein.
Nun wollte ich einen Button "Übernehmen" noch einfügen. Hier soll die xml Datei auch neu geschrieben
werden, allerdings soll das Fenster diesmal offen bleiben.
Ich müsste praktisch das 2. Form neu laden, sämltiche Variablen, Arrays, Daten löschen und auf
die neue xml Datei aufsetzen.
this.refresh() zeichnet ja nur neu, also kann ich damit nichts anfangen...
this.restart gibts ja leider nicht ;-)
Vorab danke
danielf - Mi 24.06.09 13:35
Hallo,
ist der Konfigurationsdialog von der selbst entwickelt?
Normal macht man es so, dass man die Konfiguration an ein Objekt bindet. Wenn man dann auf Okay/X drückt wird die aktuell geöffnete Konfiguration gespeichert (das Objekt geclont und an ein Property zugewiesen wird, dass es abgefragt werden kann) und das Form geschlossen.
Beendet man den Dialog aber mit Abbrechen, so werden die aktuellen bzw. veränderten Konfigurationen nicht übernommen sondern verworfen.
Ein Übernahme-Knopf würde dementsprechend lediglich die aktuell angezeigte Konfiguration klonen und dem Property zuweisen, nicht aber das Form schließen.
Brauchst du sowas? oder was meintest du genau?
Gruß Daniel
PS:
In der Anwendung könnte es dann so aussehn
C#-Quelltext
1: 2: 3: 4:
| if (configDialog.ShowDialog() == DialogResult.OK) { this.Settings = configDialog.Settings; } |
yndaso - Mi 24.06.09 14:20
danielf hat folgendes geschrieben : |
Hallo,
ist der Konfigurationsdialog von der selbst entwickelt?
Normal macht man es so, dass man die Konfiguration an ein Objekt bindet. Wenn man dann auf Okay/X drückt wird die aktuell geöffnete Konfiguration gespeichert (das Objekt geclont und an ein Property zugewiesen wird, dass es abgefragt werden kann) und das Form geschlossen.
Beendet man den Dialog aber mit Abbrechen, so werden die aktuellen bzw. veränderten Konfigurationen nicht übernommen sondern verworfen.
Ein Übernahme-Knopf würde dementsprechend lediglich die aktuell angezeigte Konfiguration klonen und dem Property zuweisen, nicht aber das Form schließen.
Brauchst du sowas? oder was meintest du genau?
Gruß Daniel
PS:
In der Anwendung könnte es dann so aussehn
C#-Quelltext 1: 2: 3: 4:
| if (configDialog.ShowDialog() == DialogResult.OK) { this.Settings = configDialog.Settings; } | |
den Konfigurationsdialog habe ich selber gemacht, aber die Einstellungen nicht als Settings gespeichert...
Ich lese die xml Datei aus und Speichere die Informationen in diverse Arrays.
Das neu einlesen der Array könnte ich ja noch erzwingen.
Allerdings habe ich auch noch eine Kommunikation zu einem OPC Server, die neu aufgebaut werden muss
und auch Tabellen sollten neu eingelesen werden.
Ich meine man kann das schon alles einzeln nacheinander "von Hand" machen. Aber ich dachte es
gibt vielleicht eine möglichkeit das komplette form "zu reseten"
danielf - Mi 24.06.09 14:28
Du kannst das Form "reseten" indem du ein neue Instanz erzeugst. Dann ließt er aber wiederum die Konfiguration aus deiner XML-Datei und dem OPC-Server. Also gewonnen hast du dadurch nichts. Schau das du die Load und Save richtig implementierst, dann kannst du eine schöne und flexible Lösung machen, bei der ein Übernehmen kein Problem mehr darstellt :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!