private void AddNewCoord_Click(object sender, EventArgs e) { try { string NewCoordName; InputDialog.Show(out NewCoordName); if (Char.IsDigit(NewCoordName, 0)) { throw new Exception("开头不能是数字"); } if (NewCoordName == "") { throw new Exception("名称不能为空"); } if (NewCoordName.StartsWith("-")) { throw new Exception("非法字符"); } string XMLPath = "Root/" + treeView1.SelectedNode.FullPath.Replace("\\", "/"); string TreeviewAreaPath = ""; if (CoordXML.SelectSingleNode(XMLPath).Attributes["Class"].Value == "Coord") { TreeviewAreaPath = XMLPath.Replace("/" + treeView1.SelectedNode.Name, ""); } if (CoordXML.SelectSingleNode(XMLPath).Attributes["Class"].Value == "Area") { TreeviewAreaPath = XMLPath; } XmlElement newChild = MakeNewelement(NewCoordName); foreach (XmlNode childNode in CoordXML.SelectSingleNode(TreeviewAreaPath).ChildNodes) { if (childNode.Name == NewCoordName) { DialogResult dialogResult = MessageBox.Show("是否覆盖?", "坐标名称冲突", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (dialogResult == DialogResult.OK) { CoordXML.SelectSingleNode(TreeviewAreaPath).RemoveChild(CoordXML.SelectSingleNode(TreeviewAreaPath + "/" + NewCoordName)); CoordXML.SelectSingleNode(TreeviewAreaPath).AppendChild(newChild); treeView1.Nodes.Clear(); RecursionTreeControl(CoordXML.DocumentElement, treeView1.Nodes); loader.OutputXML(CoordXML, CoordDataPath); } return; } } CoordXML.SelectSingleNode(TreeviewAreaPath).AppendChild(newChild); treeView1.Nodes.Clear(); RecursionTreeControl(CoordXML.DocumentElement, treeView1.Nodes); loader.OutputXML(CoordXML, CoordDataPath); } catch (Exception ex) { MessageBox.Show(ex.Message, "严重错误:上溢", MessageBoxButtons.OK); } }
private void SaveCoord_Click(object sender, EventArgs e) { string Coordname = string.Empty; InputDialog.Show(out Coordname); try { Coordinate buffer = new Coordinate(); buffer.X = Convert.ToSingle(DirectX.Text); buffer.Y = Convert.ToSingle(DirectY.Text); buffer.Z = Convert.ToSingle(DirectZ.Text); if (preset.List.ContainsKey(Coordname)) { DialogResult dr = MessageBox.Show("是否覆盖?", "坐标名称冲突", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (dr == DialogResult.OK) { preset.List[Coordname] = buffer; preset.Save(); } } else { preset.List.Add(Coordname, buffer); preset.Save(); } LoadPreset(); } catch (Exception err) { MessageBox.Show(err.Message, "严重错误:上溢", MessageBoxButtons.OK); } }
private void NewAreaBtn_Click(object sender, EventArgs e) { try { string strText = string.Empty; InputDialog.Show(out strText); if (Char.IsDigit(strText, 0)) { throw new Exception("开头不能是数字"); } if (strText == "") { throw new Exception("名称不能为空"); } if (strText.StartsWith("-")) { throw new Exception("非法字符"); } foreach (XmlNode childNode in CoordXML.SelectSingleNode("Root").ChildNodes) { if (childNode.Name == strText) { throw new Exception("区域已存在"); } } XmlElement xmlElement = CoordXML.CreateElement(strText); XmlAttribute xmlAttribute = CoordXML.CreateAttribute("Class"); xmlElement.SetAttribute("Class", "Area"); CoordXML.SelectSingleNode("Root").AppendChild(xmlElement); treeView1.Nodes.Clear(); RecursionTreeControl(CoordXML.DocumentElement, treeView1.Nodes); loader.OutputXML(CoordXML, CoordDataPath); } catch (Exception ex) { MessageBox.Show(ex.Message, "严重错误:上溢", MessageBoxButtons.OK); } }