Autor |
Beitrag |
matze94
      
Beiträge: 19
|
Verfasst: Fr 17.09.10 19:46
ich hab einen vb code zu diesen funktionen gefunden und in c# über setzt blos funktioniert es nicht. es kommt beim löschen und beim einlesen die fehlermeldung:
"Die Items-Auflistung kann nicht geändert werden, wenn die DataSource-Eigenschaft festgelegt ist."
hier ist mal der entsprechende ausschnitt.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66:
| public void ListBox_Save(ListBox ListBox, string sFile) {
System.IO.StreamWriter oStream = null; short i = 0;
oStream = new System.IO.StreamWriter(sFile);
for (i = 0; i <= ListBox.Items.Count - 1; i++) { oStream.WriteLine(ListBox.Items); } oStream.Close(); }
public void ListBox_Read(ListBox ListBox, string sFile) {
System.IO.StreamReader oStream = null; string sLine = null;
ListBox.Items.Clear(); System.IO.FileInfo oFile = new System.IO.FileInfo(sFile);
if (oFile.Exists == true) { oStream = new System.IO.StreamReader(sFile); do { sLine = oStream.ReadLine(); if ((sLine == null)) break; ListBox.Items.Add(sLine); } while (true); oStream.Close(); } }
private void button12_Click(object sender, EventArgs e) { string sFile = null;
sFile = Application.StartupPath + "\\Liste.dat"; ListBox_Save(listBox1, sFile); }
private void button13_Click(object sender, EventArgs e) { ListBox.Items.Clear(); }
private void button14_Click(object sender, EventArgs e) { string sFile = null; sFile = Application.StartupPath + "\\Liste.dat"; ListBox_Read(listBox1, sFile); } | Moderiert von Christian S.: Topic aus C# - Die Sprache verschoben am Fr 17.09.2010 um 19:48
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Fr 17.09.10 20:34
Schau mal im Eigenschaftsfenster, ob die DataSource-Eigenschaft tatsächlich festgelegt ist. Ist dem so, solltest du den Verweis entfernen. Natürlich darf auch nirgends im Code die Eigenschaft gesetzt werden.
Für diesen Beitrag haben gedankt: matze94
|
|
matze94 
      
Beiträge: 19
|
Verfasst: Sa 18.09.10 14:05
danke die funktion die einträge in die listbox erstellt hat, bzw. die die sie entfernt hat hatten eine data source eigenschaft ich hab die funktionen rausgelassen, auch aus anderen grund
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Sa 18.09.10 17:01
Ist das Problem jetzt gelöst oder nicht?
Wenn nicht, hast du wirklich alle Verweise auf DataSource entfernt? Benutze sicherheitshalber mal die Suche in Dateien von Visual Studio.
|
|
matze94 
      
Beiträge: 19
|
Verfasst: Sa 18.09.10 17:32
das einlesen von eigenen dateien klappt
das löschen bedingt, d.h. nicht mit eingelesen itemen, liegts vielleicht am code?
C#-Quelltext 1:
| listBox1.DataSource = null; |
somit konnte ich das data sourche problem umgehen
das einzige problem ist das speichern, es erzeugt zwar eine datei doch steht nur
Zitat: | System.Windows.Forms.ListBox+ObjectCollection |
drin und zwar so viel mal wie iteme in der list box sind also sind drei iteme drinnen speichert er dreimal diesen code
hier mal der code ders speichern soll
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| string sFile = Application.StartupPath + "\\Liste.xml"; System.IO.StreamWriter oStream = null; int i = 0;
oStream = new System.IO.StreamWriter(sFile); while(i < listBox1.Items.Count) { oStream.WriteLine(listBox1.Items[i]); i = i + 1 ; } oStream.Close(); |
Zuletzt bearbeitet von matze94 am Sa 18.09.10 18:55, insgesamt 1-mal bearbeitet
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Sa 18.09.10 18:28
Für diesen Beitrag haben gedankt: matze94
|
|
matze94 
      
Beiträge: 19
|
Verfasst: Sa 18.09.10 18:56
ich hab jetzt den code oben ausgetauscht (in richtiger fassung) und er funktioniert, so wie ich es will!
vielen dank, tolles forum
|
|
CityHunter
Hält's aus hier
Beiträge: 12
Win8
C# (VS 2010)
|
Verfasst: So 29.04.12 14:04
Hallo,
ich arbeite an sowas gleiches leider kriege ich das nicht hin es in einer XML datei die Werte aus der ListBox zu speichern.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| void ListeSpeichern() { xmlDateiname = System.IO.Path.ChangeExtension(Application.ExecutablePath, ".xml"); xmlVorhanden = System.IO.File.Exists(xmlDateiname); XmlWriterSettings einstellungen = new XmlWriterSettings(); einstellungen.Indent = true; XmlWriter xmlSchreiben = XmlWriter.Create(xmlDateiname, einstellungen); xmlSchreiben.WriteStartDocument(); xmlSchreiben.WriteStartElement("ListenBox"); for (int i = 0; i < listBox1.Items.Count - 1; i++) { xmlSchreiben.WriteStartElement("eintrag"); xmlSchreiben.WriteElementString("Eingabefeld",listBox1.SelectedItems.ToString()); xmlSchreiben.WriteEndElement(); }
xmlSchreiben.WriteEndDocument(); xmlSchreiben.Close(); } |
Hoffe mir kann da einer weiter helfen.
Wünsche euch ein schönen Feiertag.
|
|
Th69
      

Beiträge: 4796
Erhaltene Danke: 1059
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: So 29.04.12 20:22
Hallo CityHunter
hast du auch die markierte Anmerkung von Yogu hier in diesem Beitrag gelesen?
P.S: Beim nächsten Mal eröffne besser einen eigenen Beitrag (und verweise evtl. auf einen anderen), damit sich die Antworten nicht vermischen.
|
|
CityHunter
Hält's aus hier
Beiträge: 12
Win8
C# (VS 2010)
|
Verfasst: So 29.04.12 20:52
Ja habe ich. Naja jedes mal wenn ich irgend wo im Forum was neues aufmache wird es gelöscht weil das schon gibt in einer abgewanden Form. Ja habe das mit [i] Probiert aber keine ahnung vielleicht habe ich ja auch ein Logik fehler drin. Die sind ja bissel schwerer zufinden als ein Syntax fehler ^^
Moderiert von Th69: Full-Quote entfernt.
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Mo 30.04.12 13:06
Was mir noch auffällt ist, dass du das Element "ListenBox" öffnest (Zeile 15), aber nicht schließst (sollte vor WriteEndDocument passieren). Wenn das auch nicht hilft, solltest du uns auf jeden Fall sagen, was genau nicht funktioniert (Compilerfehler? Exception? Unerwartetes Verhalten?)
|
|