我有一個可編輯組合框。用戶輸入文本並按下保存按鈕。他們的文字變成了一個字符串。如何在運行時在app.config中創建新用戶設置
我需要它在運行時創建一個新的用戶設置到app.config與他們的字符串的名稱。 (我認爲這部分現在起作用)。
然後另一個組合框的選定項目被保存到設置。 (對象引用未設置錯誤)。
這是創建一個自定義預設,將保存程序中的每個控制狀態,複選框,文本框等。
// 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;
在這部分,我收到一個錯誤。
Settings.Default[customText] = (string)comboBox2Item;
異常:拋出:「對象引用未設置爲對象的實例」。
我已經嘗試將ComboBox1.Text設置爲對象而不是字符串,具有相同的錯誤。文本和字符串也不爲空。
Object customText = ComboBox1.Text;
不檢查你可能需要保存配置,然後重新裝入。請記住,通過代碼使用的很多設置都是通過Visual Studio在通過設計器修改配置時生成的類完成的。有一些XML配置類可以解析並手動修改配置文件,但在保存之前沒有XSD來驗證您的更改。請謹慎操作,因爲您可能會將配置修改爲由於配置標記無效而導致應用程序無法啓動的狀態。 – xtreampb
@xtreampb我更新了我的代碼。我認爲它已經在app.config中創建了設置並執行了過去的代碼,但是在嘗試向設置中添加字符串時,它給出了相同的錯誤。 –
我認爲錯誤被拋出是因爲'Settings.Default [customText]'沒有被編譯到設置類中。在你的解決方案資源管理器中,展開'properties/settings.settings/settings.designer.cs',你會看到默認實例中的所有項目。當您添加設置時,在調用設置之前,您可能需要保存並重新加載設置文件。 – xtreampb