如何让程序在退出时保存textbox.text到app.config中,textbox.text已经绑定到app.config?

解决方案 »

  1.   

    修改config文件的类,你可以增加节点,用节点的value来保存内容using System;
    using System.Configuration;
    namespace Heaven.Pub
    {
        /// <summary>
        /// 配置文件的类型
        /// </summary>
        public enum ConfigType
        {
            /// <summary>
            /// 网站的配置文件
            /// </summary>
            WebConfig=0,
            /// <summary>
            /// 应用程序的配置文件
            /// </summary>
            AppConfig=1
        }    public class ConfigurationOperator
        {
            private Configuration config;
            private ConfigType configType;
            private string configPath;        /// <summary>
            /// 配置文件
            /// </summary>
            public Configuration Config
            {
                set
                {
                    config = value;
                }
                get
                {
                    return config;
                }
            }        /// <summary>
            /// 
            /// </summary>
            /// <param name="configType">配置文件类型</param>
            public ConfigurationOperator(ConfigType configType)
            {
                this.configType = configType;
                if (configType == ConfigType.WebConfig)
                {
                    configPath = System.Web .HttpContext.Current.Request.ApplicationPath;
                }
                else
                {
                    configPath = System.Windows .Forms .Application.ExecutablePath;
                }
                Initialize();
            }        /// <summary>
            /// 
            /// </summary>
            /// <param name="configPath">配置文件路径</param>
            /// <param name="configType">配置文件类型</param>
            public ConfigurationOperator(string configPath, ConfigType configType)
            {
                this.configPath = configPath;
                this.configType = configType;
                Initialize();
            }        private void Initialize()
            {
                if (configType == ConfigType.AppConfig )
                {
                    config = System.Configuration .ConfigurationManager.OpenExeConfiguration(configPath);
                }
                else
                {
                    config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(configPath);
                }
            }        /// <summary>
            /// 增加appSetting
            /// </summary>
            /// <param name="key">appSetting的关键字</param>
            /// <param name="value">appSetting的值</param>
            public void AddAppSetting(string key, string value)
            {
                AppSettingsSection appSetting = (AppSettingsSection)config.GetSection("appSettings");
                if (appSetting.Settings[key] == null)
                {
                    appSetting.Settings.Add(key, value);
                }
                else
                {
                    ModifySetting(key, value);
                }
            }        /// <summary>
            /// 修改appSetting
            /// </summary>
            /// <param name="key">appSetting的关键字</param>
            /// <param name="newValue">appSetting的新值</param>
            public void ModifySetting(string key, string newValue)
            {
                AppSettingsSection appSetting = (AppSettingsSection)config.GetSection("appSettings");
                if (appSetting.Settings[key] != null)
                {
                    appSetting.Settings[key].Value  = newValue;
                }
                else
                {
                    AddAppSetting(key, newValue);
                }
            }        /// <summary>
            /// 增加连接字符串
            /// </summary>
            /// <param name="key">增加的关键字</param>
            /// <param name="connectString">增加的连接字符串</param>
            public void AddConnectString(string key, string connectString)
            {
                ConnectionStringsSection connectionString = (ConnectionStringsSection)config.GetSection("connectionStrings");
                if (connectionString.ConnectionStrings[key] == null)
                {
                    ConnectionStringSettings connectionSetting=new ConnectionStringSettings (key,connectString );
                    connectionString.ConnectionStrings.Add(connectionSetting);
                }
                else
                {
                    ModifySetting(key, connectString);
                }
            }        /// <summary>
            /// 修改连接字符串
            /// </summary>
            /// <param name="key">需要修改的关键字</param>
            /// <param name="newConnectString">新的连接字符串</param>
            public void ModifyConnectString(string key, string newConnectString)
            {
                ConnectionStringsSection connectionString = (ConnectionStringsSection)config.GetSection("connectionStrings");
                if (connectionString.ConnectionStrings[key] != null)
                {
                    connectionString.ConnectionStrings[key].ConnectionString  = newConnectString;
                }
                else
                {
                    AddConnectString(key, newConnectString);
                }
            }        /// <summary>
            /// 保存配置信息
            /// </summary>
            public void SaveConfig()
            {
                config.Save();
            }
        }
    }