2010-06-13 35 views
21

可能重複:
What is the best way to store user settings for a .NET application?保存設置在.NET WinForms應用程序

我已經從很多發現非常不同的例子,以一個如何保存程序的設置(每用戶)一個Winforms應用程序。

我想在c#中這樣做的正確方法非常簡單,希望有人能夠啓發我嗎?

+1

可能的重複[什麼是存儲.NET應用程序的用戶設置的最佳方式?](http://stackoverflow.com/questions/26369/what-is-the-best-way-to-存儲用戶設置爲網絡應用程序)(這必須是在.NET標記中最重複的問題之一...) – Aaronaught 2010-06-13 14:18:33

+0

還有另一種方法來保存.Net中的設置是[Config4Net]( https://github.com/sontx/config4net),它是.Net的內置設置功能的替代方案。您還可以在運行時顯示您的配置的UI以進行編輯,它可以節省您的時間,尤其是在爲應用程序創建設置表單時。 – 2018-02-04 11:56:42

回答

60

在某些時候,答案可歸結爲品味問題。我說你會用至少這些選項結束:

  • 其存儲在註冊表,在那裏你必須HKEY_CURRENT_USER項。它下面的一切都是用戶特定的。當您想要存儲一堆小鍵值對時,通常首選此選項。這個系統的主要優點是您的設置很容易在多個不同的應用程序中找到並共享。遵循此路徑,您可以從here開始。
  • 使用.NET應用程序設置提供了在運行時訪問設置的最簡單方法。同樣,最好使用小尺寸數據的鍵值對。國際海事組織,這種方法的主要優點是它的簡單性和事實,它使你能夠使用一些.NET類作爲值(不要強迫你將所有東西都轉換成更基本的類型)。要遵循此路徑,您可以從here開始。
  • 將其存儲在用戶數據文件夾中,通常隱藏在用戶的配置文件目錄下。當您想要存儲大量數據或任何數量的文件時,這是首選。這種方法的主要優點是,您可以像處理任何文件一樣操作數據(這可能也是一個缺點)。要遵循此路徑,您可以從here開始。
+0

鏈接現在已損壞 – Brett 2017-05-28 10:12:15

13

您可以使用.NET提供的設置基礎結構。在項目的屬性頁面中,轉到設置頁面,然後定義您的設置。您可以將每個設置的範圍定義爲「應用程序」或「用戶」。將自動生成一個類以從代碼訪問這些設置。

要訪問設置Foo和Bar,使用:

// Read settings 
textBoxFoo.Text = Properties.Settings.Default.Foo; 

// Write settings 
Properties.Settings.Default.Bar = checkBoxBar.IsChecked; 

// Save settings 
Properties.Settings.Default.Save(); 
+0

有沒有辦法直接從你的代碼做到這一點?即,您是否必須先在項目屬性頁面中預先設置它們? – Jimbo 2010-06-13 14:50:49

+0

是的,設置必須在預定義中。設置文件 – 2010-06-13 19:31:43

+1

我認爲應用程序作用域設置不會被保存。 – 2013-06-15 20:18:03

1

我會用Application Settings。這非常簡單,並且會爲您解決一些問題(例如,沒有對無需管理訪問權的安裝應用程序的文件夾的寫入訪問權限,這會直接使用app.config進行設置)。