zoukankan      html  css  js  c++  java
  • C#中使用设置(Settings.settings) Properties.Settings.Default .(配置文件相当重要)

    C#中使用设置(Settings.settings) Properties.Settings.Default .

    在设计时创建新设置的步骤

    在“Solution Explorer”(解决方案资源管理器)中,展开项目的“Properties”(属性)节点。

    在“Solution Explorer”(解决方案资源管理器)中,双击要在其中添加新设置的 .settings 文件。此文件的默认名称是 Settings.settings。

    为设置键入新值,然后保存该文件。

    在运行时使用设置

    运行时应用程序可以通过代码使用设置。具有应用程序作用域的设置值能够以只读方式进行访问,而用户作用域设置的值可以进行读写。在 C# 中可以通过 Properties 命名空间使用设置。

    在运行时读取设置

    可在运行时使用 Properties 命名空间读取应用程序作用域及用户作用域设置。Properties 命名空间通过Properties.Settings.Default 对象公开了项目的所有默认设置。编写使用设置的代码时,所有设置都会出现在 IntelliSense 中并且被强类型化。因此,举例来说,如果设置的类型为 System.Drawing.Color,则无需先对其进行强制类型转换即可使用该设置,如下例所示:

    this.BackColor = Properties.Settings.Default.myColor;
    

    在运行时保存用户设置

    应用程序作用域设置是只读的,只能在设计时或通过在应用程序会话之间修改 <AssemblyName>.exe.config 文件来进行更改。然而,用户作用域设置却可以在运行时进行写入,就像更改任何属性值那样。新值会在应用程序会话持续期间一直保持下去。可以通过调用 Settings.Save 方法来保持在应用程序会话之间对用户设置所做的更改。这些设置保存在 User.config 文件中。

    在运行时写入和保持用户设置的步骤

    访问用户设置并为其分配新值,如下例所示:

    Properties.Settings.Default.myColor = Color.AliceBlue;
                

    如果要保持在应用程序会话之间对用户设置所做的更改,请调用 Save 方法,如以下代码所示:

    Properties.Settings.Default.Save();
    

    =========================================================================================================================================================================================================================================================================================================================================================================================================

    1、定义

    在Settings.settings文件中定义配置字段。把作用范围定义为:User则运行时可更改,Applicatiion则运行时不可更改。可以使用数据网格视图,很方便;

    2、读取配置值

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

    3、修改和保存配置

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

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

    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 SettingsrooksLocal SettingsApplication DataTestWinForm目录了。


    =========================================================================================================================================================================================================================================================================================================================================================================================================

    例:

    using System;

    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;


    using System.Configuration;

    namespace 设置文件读写测试
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {
                Properties.Settings.Default.name = this.textBox1.Text;
                Properties.Settings.Default.Save();
                this.label1.Text = Properties.Settings.Default.name;
            }

            private void button2_Click(object sender, EventArgs e)
            {
                this.label1.Text = Properties.Settings.Default.name;
            }

            private void button3_Click(object sender, EventArgs e)
            {
                FtpSettings ftp = new FtpSettings();
                string msg = ftp.Server + ":" + ftp.Port.ToString();
                this.label2.Text = msg;
            }

            private void button4_Click(object sender, EventArgs e)
            {
                FtpSettings ftp = new FtpSettings();
                ftp.Server = this.textBox2.Text ;
                ftp.Port = Convert.ToInt32(this.textBox3.Text);
                ftp.Save();
                //ftp.Reload();
                string msg = ftp.Server + ":" + ftp.Port.ToString();
                this.label2.Text = msg;
            }
        }

        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; }
            }
        }
    }
  • 相关阅读:
    [树形DP]Luogu P1131 [ZJOI2007]时态同步
    [状压DP]JZOJ 1303 骑士
    [DFS]JZOJ 1301 treecut
    [最小费用最大流]JZOJ 4802 探险计划
    [KMP][倍增求LCA]JZOJ 4669 弄提纲
    [DP]JZOJ 1758 过河
    列表生成式和生成器表达式
    协程函数
    生成器
    迭代器
  • 原文地址:https://www.cnblogs.com/bwdblogs/p/10942503.html
Copyright © 2011-2022 走看看