Entwickler-Ecke
WinForms - Inhalt von Textboxen speichern und öffnen
Kleinohr - Mi 31.03.10 10:02
Titel: Inhalt von Textboxen speichern und öffnen
Guten Morgen zusammen
Gibt es eine Möglichkeit den Inhalt von Textboxen in einer Datei abzuspeichern ? Falls ja kann diese Datei dann wieder ausgelesen werden, so dass sich die einzelnen Textboxen mit ihren Werten wieder füllen. Kann leider keine passenden Tipps finden.
mfg
Kleinohr
danielf - Mi 31.03.10 10:18
Guten Morgen,
du kannst über DataBinding bequem Werte von einer Quelle (zum Beispiel ein Objekt oder DB) an eine Eigenschaft von einem Control binden. Wenn du zum Beispiel ein serialisierbares Objekt hast, kannst du 1) diese Objekt an die (Text) Eigenschaft deiner TextBox binden und b) es (de-)serialisieren und somit Konsistent zu machen.
Gruß Daniel
Kleinohr - Mi 31.03.10 10:21
Danke Dir schon mal für die Info
hast du vielleicht ein kurzes Quellcodebeispiel wie sowas aussieht. habe noch keinen Plan wie es funktionieren kann.
Werde jetzt mal nach DataBinding suchen
gruß
Kleinohr
danielf - Mi 31.03.10 10:59
Also zuerst solltest du dir gedanken machen, was das für Daten sind und in wie fern sie zusammen gehören.
Meistens purzeln und springen dann ("Daten")Objekte raus ;)
Kurzes "Setup" Beispiel:
Log_File: logs/Application.log
Log_Level: Debug
D.h. du hast für deine Einstellungen eine LogDatei-Name und ein LogLevel. Daraus lässt sich nun eine Klasse bilden:
C#-Quelltext
1: 2: 3: 4: 5:
| public class LogSettings { public string File { get; set; } public string Level { get; set; } } |
Diese Datei kannst du dann Serialisieren.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| LogSettings logSettings = new LogSettings(); logSettings.File = "logs/Application.log"; logSettings.Level = "Debug" XmlSerializer serializer = new XmlSerializer(typeof(LogSettings)); using(Stream s = File.OpenWrite("settings.ini")) { serializer.Serialize(logSettings, s); } using(Stream s = File.OpenRead("settings.ini")) { LogSettings geladeneSettings = (LogSettings) serializer.Deserialize(s); Console.WriteLine("LogFile: " + geladeneSettings.File); } |
// Evtl. gibt's Syntax-Fehler, aber soweit das prinzip
Wegem Databinding bitte ich dich im Netz zu googelen. Das mache ich immer über den Designer und sowas zu erklären ist blöd :) Alternativ kannst du einfach mal im Designer rumschauen bei den controls unter DataBinding... funktioniert eigentlich auf Anhieb :)
JüTho - Mi 31.03.10 11:23
Unter Umständen gibt es eine völlig andere (sinnvolle) Lösung. Wenn du dich mit einer größeren Textdatei befassen und diese in einer
MultiLine-TextBox bearbeiten willst, geht es direkt:
C#-Quelltext
1: 2: 3:
| myTextBox.Text = File.ReadAllText(filename); File.WriteAllText(filename, myTextBox.Text); |
Ähnlich ginge es mit einer RichTextBox.
Aber diese Verfahren sind wenig sinnvoll, wenn es sich um einzeilige TextBoxen handelt. Deshalb tendiert Daniel zu einer Lösung, die alle solche Texte zusammenfasst.
Jürgen
grinchi - Do 01.04.10 10:37
XMLs wären auch noch ne alternative
mfg grinchi
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!