VB.NET: Form Controls temporär speichern

Hallo liebe VB.Net Experten,
ich habe ein Problem, welches sicherlich alltäglich ist… worauf ich aber keine Antwort finde.

Problem:

In meiner Applikation gibt es einen modalen Einstellungsdialog, in diesem Dialog (abgeleitet von System.Windows.Forms.Form) können einige Einstellungen durch eine Menge Checkboxes, welche wiederrum in unterscheidlichen Tabs sind, vorgenommen werden.
Es besteht die Möglicheit den Dialog mit OK bzw. Abbrechen zu beenden.

Was will ich machen? :
Ich suche nun eine Möglichkeit die Daten der Controls vor dem Aufruf(Anzeigen) des Dialoges zu sichern. Damit ich diese beim Betätigen des Abbrechen Buttons wiederherstellen kann.

Ich habe bereits versucht mir die Controls vom Form geben zulassen, aber wie es aussieht erhalte ich hier immer nur eine Referenz auf die Controls. Sprich ich erhalte keinen Status zu einem Zeitpunkt x :o(

Weiß jemand Rat?

Vielen Dank schon einmal für alle Antworten

Gruß Jörg

Hallo Jörg,

ich hoffe, dass ich Dein Problem richtig verstanden habe: Du hast eine Hauptform, die ein Attribut hat, das über einen Einstellungsdialog modifiziert werden soll.

Public Class HauptForm
 Inherits Form
Private MeinZustand As Boolean
.
.
Private Sub BtnEinstellungen\_Click(sender As Object, e as EventArgs) Handles BtnEinstellungen.Click
 Dim Einstellungen As New EinstellungsForm(Zustand)
 If Einstellungen.ShowDialog() = DialogResult.OK Then
 Zustand = Einstellungen.ChbZustand.Checked
 EndIf
End Sub
.
.
End Class

Public Class EinstellungenForm
 Inherits Form
.
.
Private ChbZustand as CheckBox
Public Sub New(zustand As Boolean)
 Me.New()
 Me.ChbZustand.Checked = zustand
End Sub
Private Sub BtnOK\_Click(sender As Object, e As EventArgs) Handles BtnOK.Click
 Me.DialogResult = DialogResult.OK
 Me.Close()
End Sub
Private Sub BtnCancel\_Click(sender As Object, e As EventArgs) Handles BtnCancel.Click
 Me.Close()
End Sub
.
.
End Class

So in etwa? ‚Zustand‘ wird nur beim OK-Button vom Einstellungsdialog übernommen. Ist es das, was Du suchst?

Gruß
Thomas

Hallo Thomas,
mein Problem ist ja gerade, das ich den Zustand nicht extra im Hauptform seperat speichern möchte. Da ich zich Checkboxes habe.

Sprich ich möchte den Zustand nur in den Controls(Checkboxes) speichern.

Kurzes Szenario:

  1. User klickt auf dem Button Einstellungen im HauptForm.

  2. Einstellungsdialog wird angezeigt

  3. User nimmt Änderungen vor und bestätigt mit Ok.

  4. Einstellungsdialog wird ausgeblendet (nicht zerstört)

  5. User klickt erneut auf dem Button Einstellungen im HauptForm.

  6. Einstellungsdialog wird angezeigt

  7. User nimmt Änderungen vor und drückt abbrechen

  8. Einstellungsdialog wird ausgeblendet (nicht zerstört)

Zwischen 5 und 6 möchte ich jetzt die Controls speichern. Wenn möglich eben nicht in einem Haufen bool Variablen sondern direkt.
Nach 8. sollten dann die Controls wieder restauriert werden.

In PseudoCode:
Form.GibMirAlleDeineControls (Kopie keine Referenz)
User betätigt abbrechen
Form.Lösche alle Controls
Form.Füge gespeicherte Control hinzu

Danke nochmal
Gruß Jörg

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Jörg,

tja, ich ahne in etwa, was Du möchtest, sehe aber keine vernünftige Möglichkeit. Mit der Referenz auf Controls hast Du ja auch sämtliche anderen Eigenschaften, u.a. eben die Lage auf der Form. Und soweit ich mich erinnern kann, ist es sowieso nicht möglich, ein Control zu mehreren Parent-Controls hinzuzufügen. Tut mir Leid, wenn ich Dir da nicht helfen kann. Falls Du doch zu einer Lösung kommst, würde die mich auch mal interessieren …

Grüße
Thomas