Entwickler-Ecke
Basistechnologien - Checklistbox --- Objekte dauerhaft hinzufügen/entfernen
Jamez - Mi 09.12.09 14:09
Titel: Checklistbox --- Objekte dauerhaft hinzufügen/entfernen
Wie ich dauerhaft ein Objekt zur Checklistbox hinzufügen kann, wenn das Programm bereits erstellt ist ? ( Gibt es z.B. einen Befehl alle gespeicherten Variablen beizubehalten, auch wenn das Programm beendet wird ? )
Benutze momentan folgendes um temporär ( bis zur Beendigung des Programms) Objekte hinzuzufügen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| private void button1_Click(object sender, EventArgs e) { string Test = textBox1.Text;
checkedListBox1.Items.AddRange(new object[] { Test } ); } |
habe mir aber überlegt die Variablen der checkedListBox1 in einer Textdatei zu speichern und sobald ich einen Knopf drücke, werden die Variablen aus einer Test.text geladen und in die checkedlistBox1 integriert, dazu müsste ich aber wissen, wie ich ein Objekt/Variable aus der checkedlistbox wieder entferne
wenn ich z.B.
Test1,
Test2,
Test3,
Test4 habe, wie lautet der Befehl um Test3 aus der CheckedListBox1 zu entfernen ?
Freue mich schon auf eure Antworten.
mfG
danielf - Mi 09.12.09 15:53
Hallo,
das ist der richtige Ansatz.
1) Objekte statisch bei der Initialisierung (oder wie bei dir beim Click-Event) füllen oder
2) Abgespeicherte Objekte laden.
Für den zweiten Lösungsansatz gibt es verschiedene Implementierungen. Zum einen kannst den String jedes Objektes in eine Datei schrieben und später wieder laden. Dies geht sehr einfach. Nachteil hierbei, wenn du mehr als nur einen String speichern willst musst du mehr Aufwand machen. Alternativ kannst du auch die Objekte De-/Serialisieren. Das ist eine Methode mit der du ein Objekt permanent machen kannst.
Welche Lösung du verwenden willst, liegt an der Struktur der Daten. Wenn es nur String sind, würde ich keinen Aufwand machen und die einfach Zeilenwiese wegschreiben und nachher laden.
Gruß Daniel
Jamez - Mi 09.12.09 17:43
De-/Serialisieren sagt mir nichts ^^.
Gut dann werde ich heute Abend nach der Arbeit mal alles in Textdateien speichern, sind ja immerhin nur 6-7 Wörter also nichts großes, denke auch mal eine Datenbank dafür anzulegen wäre schwachsinnig ( wobei es sicherlich interessant ist, damit ich mal sehe wie sie funktioniert)
Wie lade ich ein Objekt denn beim Starten ?
OnScriptLoad ? oder wie lautet der genaue Befehl ( so bin erstmal arbeiten, wäre super wenn mir einer die Antwort nennen könnte, dann muss ich heute Abend nicht solange suchen ^^)
mfG und vielen Dank
JüTho - Mi 09.12.09 17:48
Bei Textdateien am einfachsten mit File.ReadAllLines in ein String-Array oder mit File.ReadAllText in einen langen String, den du dann selbst aufteilen musst. Zum Speichern natürlich umgekehrt: zuerst alle Informationen sammeln in einem langen String oder in einem String-Array, dann mit File.WriteXxx speichern.
Eine Alternative wären config-Dateien nach dem NET-Muster, siehe z.B. Configuration.AppSettings. Aber das ist vermutlich wirklich besser, das als nächstes zu versuchen, und im dritten Schritt De-/Serialisierung.
Gruß Jürgen
Jamez - Do 10.12.09 23:04
Gibt es eine Möglichkeit bei der Checkedlistbox auf das erste Objekt, zweite Objekt usw. zuzugreifen ?
Wenn z.B. in der CheckedlistBox folgendes steht:
Test,
Test1,
Test2,
Test3,
Test4,
...
und ich möchte gerne das Objekt Test 3 haben, kann ich darauf auch ohne Namen ( zugreifen ?)
Hatte an CheckedlistBox1.Object3 oder so gedacht ^^
Christian S. - Do 10.12.09 23:32
Das sollte über die Items-Eigenschaft gehen, also z.B. checkedlistBox1.Items[3].
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!