Save combobox to Settings c#, winforms?
Hallo,
Ich möchte eine combobox in die settings speichern
ich habe bissher das:
string[] items;
Dann in dem Form Load:
CBPasswords.Items.Add(Properties.Settings.Default.CBPasswordsSave);
und bei form closing:
items = new string[CBPasswords.Items.Count];
for (int i = 0; i < CBPasswords.Items.Count; i++)
{
items[i] = CBPasswords.Items[i].ToString();
Properties.Settings.Default.CBPasswordsSave = items[i];
Properties.Settings.Default.Save();
}
das problem ist das nicht alle items in der combobox gespeichert wird sondern immer nur eins, ich glaube das letzte, ich denke das liegt daran das ich Properties.Settings.Default.CBPasswordsSave = items[i]; geschrieben habe aber ich weiß keine Lösung
vielen dank im voraus!
1 Antwort
Du überschreibst das Property CBPasswordsSave immer wieder.
Lege in den Settings doch den Typ auf eine StringCollection fest, speichere die Werte aus der ComboBox in einer solchen und übergebe sie dann an das Settings-Property.
Es verhält sich so, wie bei einer Liste.
var collection = new StringCollection();
var items = CBPasswords.Items;
for (int i = 0; i < items.Count; ++i)
{
collection.Add(items[i].ToString());
}
Properties.Settings.Default.CBPasswordsSave = collection;
Properties.Settings.Default.Save();
Wenn ich das Form schließe passiert das:
System.Configuration.ConfigurationErrorsException: "Das Konfigurationssystem konnte nicht initialisiert werden."
Im Properties-Ordner deiner Projektmappe solltest du die Settingsdatei sehen. Öffne sie einmal in einem Texteditor. Die Daten werden in einem XML-Format gespeichert, irgendwo wird ein Fehler sein. Vermutlich müsstest du dein Setting einmal komplett löschen und dann neu anlegen.
hat leider nichts gebracht da wird immer bei der XML datei dieser fehler angezeigt und zwar bei ["CBPasswordsSave"] = value;
Rechtsklick auf Settings.settings im Solution Explorer > Open With ... > irgendeinen XML-Editor auswählen. Der Settings-Knoten muss so aussehen:
<Settings>
<Setting Name="CBPasswordsSave" Type="System.Collections.Specialized.StringCollection" Scope="User">
<Value Profile="(Default)" />
</Setting>
</Settings>
Ich probiere es schon die ganze zeit kriege es aber nicht hin wüsstest du wie?