Ich habe eine bearbeitbare ComboBox. Der Benutzer gibt einen Text ein und drückt auf die Schaltfläche Speichern. Ihr Text wird in eine Zeichenfolge umgewandelt.So erstellen Sie neue Benutzereinstellungen in der app.config zur Laufzeit
Ich brauche es zur Laufzeit, um eine neue Benutzereinstellung in der app.config mit dem Namen ihrer Zeichenfolge zu erstellen. (Ich denke dieser Teil funktioniert jetzt).
Dann wird das ausgewählte Element einer anderen ComboBox in der Einstellung gespeichert. (Objektverweis nicht gesetzt Fehler).
Hiermit erstellen Sie eine benutzerdefinierte Voreinstellung, die jeden Steuerstatus, Kontrollkästchen, Textfelder usw. im Programm speichert.
// Control State to be Saved to Setting
Object comboBox2Item = ComboBox2.SelectedItem;
// User Custom Text
string customText = ComboBox1.Text;
// Create New User Setting
var propertyCustom = new SettingsProperty(customText);
propertyCustom.Name = customText;
propertyCustom.PropertyType = typeof(string);
Settings.Default.Properties.Add(propertyCustom);
// Add a Control State (string) to the Setting
Settings.Default[customText] = (string)comboBox2Item;
In diesem Teil bekomme ich einen Fehler.
Settings.Default[customText] = (string)comboBox2Item;
Ausnahme: ausgelöst: „Objektverweis nicht auf eine Instanz eines Objekts festgelegt.“
Ich habe versucht, ComboBox1.Text zu einem Objekt anstelle von Zeichenfolge, mit demselben Fehler. Der Text und die Zeichenfolge sind ebenfalls nicht null.
Object customText = ComboBox1.Text;
Hier ist eine visuelle, was ich versuche,
ohne zu überprüfen, müssen Sie wahrscheinlich die Config speichern, und es dann neu zu laden. Beachten Sie, dass viele Einstellungen, die Sie über den Code vornehmen, über eine Klasse vorgenommen werden, die Visual Studio beim Ändern der Konfiguration über den Designer generiert. Es gibt XML-Konfigurationsklassen, die Sie analysieren und die Konfigurationsdatei manuell ändern können. Es gibt jedoch kein XSD, um Ihre Änderungen zu validieren, bevor Sie sie speichern. Seien Sie vorsichtig, da Sie die Konfiguration in einen Zustand ändern können, in dem Ihre Anwendung aufgrund ungültiger Konfigurationsmarkierungen nicht gestartet wird. – xtreampb
@xtreampb Ich habe meinen Code aktualisiert. Ich denke, es hat die Einstellung in app.config erstellt und führt nach diesem Code, aber es gibt den gleichen Fehler beim Versuch, eine Zeichenfolge der Einstellung hinzuzufügen. –
Ich denke, der Fehler wird ausgelöst, weil 'Settings.Default [customText]' nicht in die Einstellungsklasse kompiliert wird. Erweitern Sie in Ihrem Lösungsexplorer "properties/settings.settings/settings.designer.cs" und Sie sehen alle darin enthaltenen Elemente in der Standardinstanz.Wenn Sie die Einstellung hinzufügen, müssen Sie vor dem Aufruf möglicherweise Ihre Einstellungsdatei speichern und dann neu laden. – xtreampb