Sunday, July 1, 2012

c# config helper load save form state

    private void Form1_Load(object sender, EventArgs e)
        {
            if (!System.IO.File.Exists(@"app.config"))
            {
                TextWriter tw = new StreamWriter("app.config");
                tw.Write(str1);
                tw.Close();
            }
           
            ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
            fileMap.ExeConfigFilename = @"app.config";

            Configuration config =
               ConfigurationManager.OpenMappedExeConfiguration(fileMap,
               ConfigurationUserLevel.None);

            if (config.AppSettings.Settings["WindowState"] != null)
                this.WindowState = (FormWindowState)Enum.Parse(typeof(FormWindowState), config.AppSettings.Settings["WindowState"].Value.ToString());
            if (config.AppSettings.Settings["LocationX"] != null && config.AppSettings.Settings["LocationY"] != null )
                this.Location = new Point(int.Parse ( config.AppSettings.Settings["LocationX"].Value) , int.Parse ( config.AppSettings.Settings["LocationY"].Value )) ;
            if (config.AppSettings.Settings["Width"] != null && config.AppSettings.Settings["Height"] != null)
                this.Size = new Size (int.Parse(config.AppSettings.Settings["Width"].Value) ,  int.Parse(config.AppSettings.Settings["Height"].Value) );
            if (config.AppSettings.Settings["TrackBarValue"] != null)
                trackBar1.Value = int.Parse(config.AppSettings.Settings["TrackBarValue"].Value) ;
        }

        string str1 = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "\r\n" +
        "<configuration>" + "\r\n" +
        "<appSettings file=\"\">" + "\r\n" +
        "<clear />" + "\r\n" +
        "<add key=\"WindowState\" value=\"0\" />" + "\r\n" +
        "<add key=\"LocationX\" value=\"0\" />" + "\r\n" +
        "<add key=\"LocationY\" value=\"0\" />" + "\r\n" +
        "<add key=\"Width\" value=\"300\" />" + "\r\n" +
        "<add key=\"Height\" value=\"300\" />" + "\r\n" +
        "<add key=\"TrackBarValue\" value=\"0\" />" + "\r\n" +
        "</appSettings>" + "\r\n" +
        "</configuration>";

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
            fileMap.ExeConfigFilename = @"app.config";

            Configuration config1 =
            ConfigurationManager.OpenMappedExeConfiguration(fileMap,
            ConfigurationUserLevel.None);

            config1.AppSettings.Settings["WindowState"].Value = ((int)this.WindowState).ToString() ;
            config1.AppSettings.Settings["LocationX"].Value = this.Location.X.ToString();
            config1.AppSettings.Settings["LocationY"].Value = this.Location.Y.ToString();
            config1.AppSettings.Settings["Width"].Value = this.Width.ToString();
            config1.AppSettings.Settings["Height"].Value = this.Height.ToString() ;
            config1.AppSettings.Settings["TrackBarValue"].Value = this.trackBar1.Value.ToString();
            config1.Save(ConfigurationSaveMode.Modified);
        }

No comments:

Post a Comment