public bool ReadParamFromXml(string path) { try { if (File.Exists(path)) { System.Diagnostics.Debug.WriteLine("start ReadParamFromXml\n"); xmlDocument.Load(path); XmlElement root = xmlDocument.DocumentElement; if (root == null) { return(false); } XmlNodeList clsMotionList = xmlDocument.SelectNodes("/ParamCfg/ParamSet");//(XmlElement)root.SelectSingleNode(" / SystemCfg / Motion"); if (clsMotionList == null || clsMotionList.Count == 0) { return(false); } XmlNodeList xmlNodeList = clsMotionList.Item(0).ChildNodes; string strType; string strParamName = ""; string strParamVal = ""; string strParamRight = ""; ClearAllParam(); _dicTypeParamset.Clear(); foreach (XmlNode temp in xmlNodeList) { ParamSet paramSet = new ParamSet(); strParamName = temp.Attributes["ParamName"].Value.Trim(); strType = temp.Attributes["ParamType"].Value.Trim(); strParamVal = temp.Attributes["ParamVal"].Value.Trim(); paramSet._enuValType = (ParamSetUnit)Enum.Parse(typeof(ParamSetUnit), strType); strParamRight = temp.Attributes["ParamRight"].Value.Trim(); paramSet._ParamRight = (UserRight)Enum.Parse(typeof(UserRight), strParamRight); //paramSet._strParamVal = strParamVal; //paramSet._strParamValMax = temp.Attributes["ParamValMax"].Value; //paramSet._strParamValMin = temp.Attributes["ParamValMin"].Value; paramSet._ParamClass = temp.Attributes["ParamValClass"].Value.Trim(); if (paramSet._enuValType == ParamSetUnit.boolUnit) { paramSet._strParamVal = Convert.ToBoolean(strParamVal); paramSet._strParamValMax = Convert.ToBoolean(temp.Attributes["ParamValMax"].Value.Trim()); paramSet._strParamValMin = Convert.ToBoolean(temp.Attributes["ParamValMin"].Value.Trim()); SetBoolParam(strParamName, Convert.ToBoolean(strParamVal)); } if (paramSet._enuValType == ParamSetUnit.intUnit) { paramSet._strParamVal = Convert.ToInt32(strParamVal); paramSet._strParamValMax = Convert.ToInt32(temp.Attributes["ParamValMax"].Value.Trim()); paramSet._strParamValMin = Convert.ToInt32(temp.Attributes["ParamValMin"].Value.Trim()); SetIntParam(strParamName, Convert.ToInt32(strParamVal)); } if (paramSet._enuValType == ParamSetUnit.doubleUnit) { paramSet._strParamVal = Convert.ToDouble(strParamVal); paramSet._strParamValMax = Convert.ToDouble(temp.Attributes["ParamValMax"].Value.Trim()); paramSet._strParamValMin = Convert.ToDouble(temp.Attributes["ParamValMin"].Value.Trim()); SetDoubleParam(strParamName, Convert.ToDouble(strParamVal)); } if (paramSet._enuValType == ParamSetUnit.stringUnit) { paramSet._strParamVal = Convert.ToString(strParamVal); paramSet._strParamValMax = Convert.ToString(temp.Attributes["ParamValMax"].Value.Trim()); paramSet._strParamValMin = Convert.ToString(temp.Attributes["ParamValMin"].Value.Trim()); SetStringParam(strParamName, strParamVal); } SetParam(strParamName, paramSet); SetTypeDic(paramSet._ParamClass, strParamName, paramSet); } System.Diagnostics.Debug.WriteLine("end ReadParamFromXml\n"); return(true); } else { return(false); } } catch (Exception ex) { MessageBox.Show("读取:" + path + " 文件时:" + ex.Message, "Err", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } }