Autor Beitrag
yndaso
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 108



BeitragVerfasst: Mi 24.06.09 11:59 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: 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
ausblenden C#-Quelltext
1:
2:
3:
4:
if (configDialog.ShowDialog() == DialogResult.OK)
{
   this.Settings = configDialog.Settings;
}
yndaso Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 108



BeitragVerfasst: Mi 24.06.09 14:20 
user profile icondanielf hat folgendes geschrieben Zum zitierten Posting springen:
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
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: 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 :)