2012-04-13 93 views
1

如果我創建用戶級應用程序設置並將其綁定到窗體上的文本框,然後在文本框中鍵入內容,該值將自動保存,並且當應用程序再次啓動時,值出現在文本框中。當我將設置限定爲應用程序時,不會發生這種情況。應用程序設置範圍 - 用戶vs應用程序

爲什麼應用程序作用域設置不像用戶作用域設置那樣自動保存?

如果這是設計,我該如何手動保存這些設置並在運行時加載它們?

回答

4

簡而言之,應用程序作用域設置不能在運行時更改,而用戶作用域設置可在運行時進行讀寫。有一些替代使用的應用程序的範圍設置:

  • 使用用戶範圍設置
  • This後建議尋找到ConfigurationManager中類。
  • 如果你不喜歡的用戶範圍的設置,因爲他們不寫,你可以實現自己的SettingsProvider並將它們寫在任何你想

This post應用程序目錄,對如何提出了一些建議最好的管理設置。最後,如果您有興趣擴展自己或自己動手,則在設置體系結構上是Microsoft's documentation

+0

因此,應用程序範圍的設置將在設計時通過屬性窗口設置,然後單獨保留?它們沒有寫入磁盤,然後在運行時從文件加載? – 2012-04-13 18:27:13

+0

@YourMother類。應用程序範圍設置的默認值將被編譯到您的應用程序中(請參閱屬性文件夾 - > Settings.settings,設計人員在其中編寫設置)。編譯應用程序後,這些值也可以在MyApp.exe.config文件中覆蓋。 – 2012-04-13 18:41:45

+0

謝謝。我測試了這一點,似乎它是如何工作的。我確實可以覆蓋默認設置,即編輯 .exe.config文件。我的問題是,如果我刪除這個文件,然後應用程序似乎再次加載默認。所以它似乎被編譯到應用程序中。如果配置文件被意外刪除並且已經使用新值編輯,會發生什麼情況?它可以用默認值再次以某種方式重新生成嗎?只是試圖瞭解行爲。 – 2012-04-13 19:07:15