1、定义

在Settings.settings文件中定义配置字段。把作用范围定义为:User则运行时可更改(用户范围的字段数据更改存储在用户信息中,不在该程序文件中)Applicatiion则运行时不可更改可以使用数据网格视图(VS软件的Properties 下面的Setting.settings设置即可),很方便;

2、读取配置值

text1.text = Properties.Settings.Default.FieldName;
//FieldName是你定义的字段

3、修改和保存配置

Properties.Settings.Default.FieldName = "server";

Properties.Settings.Default.Save();//使用Save方法保存更改

示例部分:

VS界面图:

重新生成方案之后的App.Config文件:

代码部分:

    public partial class MainWindow : Window{public MainWindow(){InitializeComponent();}private void Button_Click(object sender, RoutedEventArgs e){//软件版本号string Version = Application.ResourceAssembly.GetName().Version.ToString();Console.WriteLine(Version);//测试Settings内设置的字段值--读取string str1= Properties.Settings.Default.CashColor;MessageBox.Show(str1);Properties.Settings.Default.CashColor = "serverBack";Properties.Settings.Default.Save();//使用Save方法保存更改}}

配置变更信息保存路径(用户信息):

已经Save了,你可能会在应用程序文件夹里找不到它到底保存到哪里去了。由于我们是用UserScope的,所以其实该配置信息是保存到了你的Windows的个人文件夹里去了

4、也可以自己创建

创建一个配置类FtpSetting。在WinForm应用程序里,一切配置类都得继承自 ApplicationSettingsBase 类。

sealed class FtpSettings : ApplicationSettingsBase

{
      [UserScopedSetting]
       [DefaultSettingValue("127.0.0.1")]
      public string Server
      {
           get { return (string)this["Server"]; }
           set { this["Server"] = value; }
      }
      [UserScopedSetting]
      [DefaultSettingValue("21")]
      public int Port
      {
          get { return (int)this["Port"]; }
          set { this["Port"] = value; }
      }
}

使用上述配置类,可以用:

private void button2_Click(object sender, EventArgs e)
{
     FtpSettings ftp = new FtpSettings();
     string msg = ftp.Server + ":" + ftp.Port.ToString();
     MessageBox.Show(msg);
}

我们在使用上述FtpSetting 配置时,当然要先进行赋值保存,然后再使用,后面再修改,再保存,再使用。
private void button2_Click(object sender, EventArgs e)
{
     FtpSettings ftp = new FtpSettings();
     ftp.Server = "ftp.test.com";
     ftp.Port = 8021;
     ftp.Save();
     ftp.Reload();
     string msg = ftp.Server + ":" + ftp.Port.ToString();
     MessageBox.Show(msg);
}
嗯。已经Save了,你可能会在应用程序文件夹里找不到它到底保存到哪里去了。由于我们是用UserScope的,所以其实该配置信息是保存到了你的Windows的个人文件夹里去了。比如我的就是 C:\Documents and Settings\brooks\Local Settings\Application Data\TestWinForm目录了。

5.关于Settings 配置与App.config文件之间关系

一个Setting有4个属性Name,Type,Scope,Value。重点讲一下Scope属性,Scope属性有两个值Application,User

这两者区别:

Scope值为Application(应用程序)时,对应的Setting在运行时不可以修改

Scope值为User(用户)时,对应的Setting在运行时可以修改

Setting保存位置:当程序编译后,Setting的值保存在<AssemblyName>.exe.config文件中,例如:

其中,Settings里的属性根据范围分为两种 “用户”和“应用程序”(其中:应用程序级配置是只读的而用户级是可读写的。)

范围为“应用程序”的属性,读取都是从APP.CONFIG里获取,设置也可以通过手工修改App.config改变,但是在程序中无法对其进行赋值,只能读取。

而范围为“用户”的属性 Settings 在第一次运行时会读取App.config里的初始值

但是一旦调用Save方法后,Settings里“用户”范围属性就会保存在系统里面,类似WebForm里的Cookies一样

从此以后,读取都会从系统里保存的值里读取,手工修改App.config里的“用户”范围的属性不会影响到这些属性,但是在调用Reset方法时会从新从App.config里获取“用户”范围的属性写入到系统中。

也就是说,settings里“用户”范围的属性总共有3个地方存储。

1、app.config配置文件-----程序第一次运行,之前程序未调用save(),在系统中找不到就会从这里获取

2、操作系统--------当settings调用save()保存后。

3、内存----程序启动后,实例化settings对象,该实例在创建的时候从系统(如果系统中没有就如前面提到的从配置文件中获取)读取在内存中。

一旦我们通过VC#给它添加值后,在工程目录下会生成一个 app.config 文件。

C# Setting.settings . 配置用法相关推荐

  1. nexus-3.6.0-02-unix.tar.gz安装(Centos下),maven setting.xml配置案例,项目root的pom.xml配置,parent-pom的pom.xml配置案例

    1.下载nexus 进入:http://www.sonatype.org/nexus/downloads/ 说明: [OSS = Open Source Software,开源软件 – 免费] [FR ...

  2. 如果要用thinkphp框架_php需要改哪些配置,thinkPHP框架动态配置用法实例分析

    本文实例讲述了thinkPHP框架动态配置用法.分享给大家供大家参考,具体如下: 最近在用@ThinkPHP 做系统的时候,要用到一个功能,就要动态的将系统的配置参数保存到Config文件中.以往,我 ...

  3. 日常填坑系列-Maven-1、Maven的安装及setting.xml配置

    一.下载Maven 官方网站https://mirrors.tuna.tsinghua.edu.cn/apache/maven/,选择想要下载的版本 2.3.5.3版本的http://mirrors. ...

  4. django的settings配置详解

    1.介绍 BASE_DIR  默认值:os.path.dirname(os.path.dirname(os.path.abspath(__file__))). 这个是Django项目文件夹所在目录得绝 ...

  5. tomcat最大连接数_SpringBoot内嵌Tomcat自定义配置用法

    针对框架内嵌的Tomcat,实现自定义配置用法: 1. 可以通过application.yml文件实现 2. 可以通过代码,实现自定义配置 技术点 1. .yml文件格式用法:配置Tomcat参数,框 ...

  6. Maven基础5:Maven基本概念,仓库配置(在setting中配置本地仓库 和 远程仓库);全局setting和局部setting;

    说明: (1) 介绍了修改本地仓库地址.远程仓库地址.全局setting和局部setting: 目录 1.修改本地仓库的位置: 2.远程仓库配置:(即,我们默认从哪个远程仓库,下载资源) 附加:全局s ...

  7. 前端setting.json配置

    前端setting.json配置 {// prettier 的配置文件存放路径 # "prettier.configPath": "~/.prettierrc" ...

  8. ckeditor+ckfinder配置用法

    ckeditor+ckfinder配置用法 一.使用方法:1.在页面<head>中引入ckeditor核心文件ckeditor.js    <script type="te ...

  9. Maven setting.xml 配置详解

    声明规范 <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://ww ...

最新文章

  1. 【转】Silverlight全开源工作流设计器
  2. python剑指offer跳台阶_【剑指offer】跳台阶I和II(Javapython)
  3. java 内部编码_Java 中文编码分析
  4. 【2016年第4期】大数据时代的简约计算
  5. 【英语学习】【Daily English】U13 Holiday L04 How was it?
  6. python r转义_Python快速入门系列之二:还学不会我直播跪搓衣板
  7. 小米回应设备被谷歌禁用;苹果中国宣布 2019 款 iPad 降价;Wine 5.0-rc4 发布 | 极客头条...
  8. delphi连接mysql不用添加dsn_jsp中有没有像asp的非DSN连接数据库方法呢?(20分)
  9. QThread使用方法
  10. python之读取和写入文件
  11. 2021免费注册TK域名使用一年的方法
  12. Excel中如何统计一行中指定类型元素的个数
  13. “期货投资管理”的资管软件开发都需要用到什么开发语言和环境
  14. illustrator cs5 for mac 官方简体中文版 破解
  15. 微型计算机原理与接口技术-实验一
  16. 黑鲨能不能用鸿蒙系统,选择黑鲨,在方寸之间享受自我
  17. 网上商城购物系统设计与实现(Java+Web+SSM+MySQL)
  18. 三种循环实习九九乘法表、实现其他例子
  19. UWB定位技术融合定位革新物联发展
  20. JS逆向:维普期刊rs5(非正面对抗)

热门文章

  1. 解决Antimalware Service Executable CPU,内存占用高的问题
  2. Win10启动windows audio服务失败解决方案
  3. PS能去水印吗?如何快速去水印?磨金石教育告诉你。
  4. 定宽适配所有移动设备demo
  5. go : 使用 grom 删除数据库数据
  6. openldap配置
  7. [The Preliminary Contest for ICPC Asia Xuzhou 2019 - 徐州网络赛E] XKC's basketball team
  8. 【趣事】一根网线发起的攻击
  9. jenkins构建部署测试环境常规化操作
  10. BS架构和CS架构的区别(转载)