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:
-
User klickt auf dem Button Einstellungen im HauptForm.
-
Einstellungsdialog wird angezeigt
-
User nimmt Änderungen vor und bestätigt mit Ok.
-
Einstellungsdialog wird ausgeblendet (nicht zerstört)
-
User klickt erneut auf dem Button Einstellungen im HauptForm.
-
Einstellungsdialog wird angezeigt
-
User nimmt Änderungen vor und drückt abbrechen
-
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