在项目中使用.settings文件
一、什么是.settings文件
.settings文件是专用于保存程序设置文件。当应用程序启动时,从.settings文件中读入程序设置;退出时,将程序的某些设置保存到.settings文件中,下次启动是可以再次从文件读取这些设置。
二、实例
1. 新建项目
启动VS2012,新建一个“Windows 窗体应用程序”,项目名称“WindowsFormsApplication1”
2. 为项目添加一个“设置文件”
解决方案管理中,在项目“WindowsFormsApplication1”上点鼠标右键-->添加-->新建项
在“常规”类别中,选择“设置文件”,文件名称为:WinApp.settings。点“添加”,如下图

在项目会添加两个新的文件app.config和WinApp.settings,如下图所示。

3. 编辑WinApp.settings

4. 在程序中使用WinApp.settings
using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); // 窗口的标题 this.Text = WinApp.Default.appTilte; // 窗口位置 this.Left = WinApp.Default.x; this.Top = WinApp.Default.y; // 窗口尺寸 this.Width = WinApp.Default.width; this.Height = WinApp.Default.height; // 起始位置设置为手动 this.StartPosition = FormStartPosition.Manual; } /// <summary> /// 窗口关闭前,保存窗口位置和尺寸 /// </summary> /// <param name="e"></param> protected override void OnFormClosed(FormClosedEventArgs e) { base.OnFormClosed(e); // 保存窗口位置 WinApp.Default.x = this.Left; WinApp.Default.y = this.Top; // 保存窗口尺寸 WinApp.Default.width = this.Width; WinApp.Default.height = this.Height; // 保存 WinApp.Default.Save(); } } }
5. 运行程序,在桌面上移动窗口并改变窗口的大小,然后退出。再次运行程序,窗口会显示在上次退出时的位置,并且大小与上次退出时一样。
三、结论
1. 在项目中添加 .settings文件后,设计器自动添加存取这个文件的便利类。在上面的例子中,这个类名称为 “WinApp”(在文件WinApp.Designer.cs中)

2. 如下图所示的设置文件保存位置。注意:不同Windows用户或者同一个用户以不同身份(以管理员身份或普通用户身份)运行上面的程序后,将会生成不同版本的文件。
如下图所示,同一个用户ROCK分别以“普通用户”和“管理员用户”运行上面程序后,系统自动保存了两个版本的设置文件。
3. 在app.config中保存着WinApp.settings的“默认值” —— 以app.config文件中<userSettings>……</userSettings>的值用作为第一次生成.settings文件的值。
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > <section name="WindowsFormsApplication1.WinApp" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> </sectionGroup> <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > <section name="WindowsFormsApplication1.WinApp" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </sectionGroup> </configSections> <userSettings> <WindowsFormsApplication1.WinApp> <setting name="x" serializeAs="String"> <value>0</value> </setting> <setting name="y" serializeAs="String"> <value>0</value> </setting> <setting name="width" serializeAs="String"> <value>400</value> </setting> <setting name="height" serializeAs="String"> <value>240</value> </setting> </WindowsFormsApplication1.WinApp> </userSettings> <applicationSettings> <WindowsFormsApplication1.WinApp> <setting name="appTilte" serializeAs="String"> <value>设置文件测试程序</value> </setting> </WindowsFormsApplication1.WinApp> </applicationSettings> </configuration>
4. 需要频繁保存程序设置时,使用.settings文件来动态保存程序设置更方便,而且,由于配置文件保存位置的特殊行,写入时不会遇到权限问题。

浙公网安备 33010602011771号