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; }
            }
        }
    }
  • 相关阅读:
    CodeForces gym Nasta Rabbara lct
    bzoj 4025 二分图 lct
    CodeForces 785E Anton and Permutation
    bzoj 3669 魔法森林
    模板汇总——快读 fread
    bzoj2049 Cave 洞穴勘测 lct
    bzoj 2002 弹飞绵羊 lct裸题
    HDU 6394 Tree 分块 || lct
    HDU 6364 Ringland
    nyoj221_Tree_subsequent_traversal
  • 原文地址:https://www.cnblogs.com/bwdblogs/p/10942503.html
Copyright © 2011-2022 走看看