public void LoadSetting(System.Windows.Forms.Control control, string hardName, string defaultValue)
        {
            SettingsMenagerStructure2 defaultSetting;
            foreach (SettingsMenagerStructure2 setting in Items)
            {
                if (setting.HardName == hardName)
                {
                    setting.SetValueToControl(control);
                    return;
                }
            }

            if (defaultValue != null)
            {
                // control not find in collection, set default value
                defaultSetting = new SettingsMenagerStructure2(control, hardName);
                defaultSetting.SetValueToControl(control, defaultValue);
            }
        }
            public void Add(SettingsMenagerStructure2 setting)
            {
                SettingsMenagerStructure2 itemSetting;

                for (int i = 0; i < list.Count; i++)
                {
                    itemSetting = (SettingsMenagerStructure2)list[i];
                    if (itemSetting.HardName == setting.HardName)
                    {
                        list[i] = setting;
                        return;
                    }
                }
                list.Add(setting);
            }
        /// <summary>
        /// Load settings in memory and then call refresh event
        /// </summary>
        /// <param name="path">Path to xml file</param>
        public void LoadFromFile(string path)
        {
            XmlDocument xmlDocument;
            XmlNodeList xmlNodeList;
            XmlNode xmlNode;
            XmlNode valueElement;
            XmlNode defaultValueElement;
            SettingsMenagerStructure2 setting;
            SettingsMenager2.Type type;

            int fileVersion;

            try
            {

                Log.Write(new string[] { "Loading settings...", path }, this, "LoadFromFile", Log.LogType.DEBUG);

                // load file in xml document DOM
                xmlDocument = new XmlDocument();
                xmlDocument.Load(path);

                // select root node, get settings version
                xmlNode = xmlDocument.SelectSingleNode(XPATH_SELECT_ROOT);
                fileVersion = int.Parse(xmlNode.Attributes["version"].Value);
                // log warning
                if (fileVersion != VERSION)
                {
                    Log.Write("Version of the files different than expected, attempting to load...", this, "LoadFromFile", Log.LogType.WARNING);
                }

                xmlNodeList = xmlDocument.SelectNodes(XPATH_SELECT_SETTING);

                // clear items before load
                Items.Clear();
                foreach (XmlNode settingNode in xmlNodeList)
                {
                    valueElement = settingNode.SelectSingleNode(XPATH_SELECT_SETTING_VALUE);
                    defaultValueElement = settingNode.SelectSingleNode(XPATH_SELECT_SETTING_DEFAULT);
                    type = GetTypeFromString(settingNode.Attributes["type"].Value);
                    setting = new SettingsMenagerStructure2(settingNode.Attributes["name"].Value, settingNode.Attributes["hardname"].Value, valueElement.InnerText, defaultValueElement.InnerText, type);

                    Items.Add(setting);
                }

                // Call refresh event to reflect settings on control
                if (Refresh != null)
                {
                    Refresh(this, new EventArgs());
                }

            }
            catch (Exception ex)
            {
                Log.Write(ex, this, "LoadFromFile", Log.LogType.ERROR);
            }
        }