//单击更改时执行此函数 public static bool TransmitterUpdateMenu(TreeNode currentNode) { //bool b = false; string trFilePath = MainWindow.projectRealPath + "\\" + MainWindow.onlyProjectName + ".tx"; //将Tr文件中的字符串保护起来 string trFileStrTemp = FileOperation.ReadFile(trFilePath); //将辐射源在tr文件中的位置保护起来 int initialTransmitterBlockSite = trFileStrTemp.IndexOf(SetupContent.transmitterStr1OfTr + " " + currentNode.Text + "\r\n"); //tx文件中原来辐射源的编号也要保存下来 string initTransmitterNum = GetTransmitterNumLine(currentNode.Text, trFileStrTemp); //保存info文件中的所有字符串 string transmitterNodeInfoTemp = FileOperation.ReadFile(MainWindow.nodeInfoFullPath); //保存辐射源在info文件中的位置信息 int initialTransmitterNodeSite = transmitterNodeInfoTemp.IndexOf(SetupContent.transmitterStr1Ofsetup + " " + currentNode.Text + "\r\n"); //保存waveinfo文件中有关辐射源的信息 string transmitterParStrTemp = FileOperation.ReadFile(MainWindow.waveinfoFilePath); NewTransmitterWindow newTransmitterWin = new NewTransmitterWindow(); //将原来辐射源设置的参数信息恢复到窗口中 if (!TransmitterDataRecoverOfProjectTreeView.RecoverTransmitterParOfWin(currentNode, transmitterParStrTemp, newTransmitterWin)) { MessageBox.Show("程序运行发生错误, 更改失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop); FileOperation.RecoverOldRevision(trFileStrTemp, trFilePath, transmitterParStrTemp, transmitterNodeInfoTemp); return(false); } //TransmitterDataRecoverOfProjectTreeView.RecoverTransmitterParOfWin(currentNode, transmitterParStrTemp, newTransmitterWin); //在单击确定之前应先删除需更改的辐射源的全部信息 if (!(TransmitterDelOfTrAndInfoFile(currentNode) && TransmitterDelOfWaveInfo(currentNode) && TransmitterUpdateOfSetup())) { MessageBox.Show("程序运行发生错误, 工程文件可能被破坏,更改失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop); FileOperation.RecoverOldRevision(trFileStrTemp, trFilePath, transmitterParStrTemp, transmitterNodeInfoTemp); return(false); } MainWindow.creatSuccMesDisp = false; MainWindow.newFuncSign = false; newTransmitterWin.Text = "更改辐射源"; newTransmitterWin.ShowDialog(); switch (newTransmitterWin.DialogResult) { case DialogResult.OK: //如果在更改过程中出现了中途返回的情况,则应把原来的信息写到相应的文件中 if (MainWindow.IsReturnMidwayInNewProcess) { //FileOperation.WriteFile(trFileStrTemp , trFilePath , false); //FileOperation.WriteFile(transmitterParStrTemp, MainWindow.waveinfoFilePath, false); //FileOperation.WriteFile(transmitterNodeInfoTemp, MainWindow.nodeInfoFullPath, false); FileOperation.RecoverOldRevision(trFileStrTemp, trFilePath, transmitterParStrTemp, transmitterNodeInfoTemp); //将”全局变量“置为初始值 MainWindow.IsReturnMidwayInNewProcess = false; return(false); } if (!trStrRecoverInitTransmitterNum(initTransmitterNum, initialTransmitterBlockSite, initialTransmitterNodeSite)) { MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[3].LastNode.Remove(); MessageBox.Show("程序运行发生错误,更改操作失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop); //FileOperation.WriteFile(trFileStrTemp, trFilePath, false); //FileOperation.WriteFile(transmitterParStrTemp, MainWindow.waveinfoFilePath, false); //FileOperation.WriteFile(transmitterNodeInfoTemp, MainWindow.nodeInfoFullPath, false); FileOperation.RecoverOldRevision(trFileStrTemp, trFilePath, transmitterParStrTemp, transmitterNodeInfoTemp); return(false); } MainWindow.staticTreeView.SelectedNode.Text = MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[3].LastNode.Text; MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[3].LastNode.Remove(); return(true); //break; default: //FileOperation.WriteFile(trFileStrTemp , trFilePath , false); //FileOperation.WriteFile(transmitterParStrTemp, MainWindow.waveinfoFilePath, false); //FileOperation.WriteFile(transmitterNodeInfoTemp, MainWindow.nodeInfoFullPath, false); FileOperation.RecoverOldRevision(trFileStrTemp, trFilePath, transmitterParStrTemp, transmitterNodeInfoTemp); return(false); //break; } //return b; }
//单击更改时执行此方法 public static bool ReceiverUpdateMenu(TreeNode currentNode) { //bool b = false; string rxFilePath = MainWindow.projectRealPath + "\\" + MainWindow.onlyProjectName + ".rx"; //保存Tr文件中的字符串 string rxFileStrTemp = FileOperation.ReadFile(rxFilePath); string indStr = null; switch (currentNode.Parent.Text) { case "点状分布": indStr = SetupContent.pointReceiverOfRxStr0; break; case "区域分布": indStr = SetupContent.gridReceiverOfRxStr0; break; } //将接收机在rx文件中的位置保护起来 int initialReceiverBlockSite = rxFileStrTemp.IndexOf(indStr + " " + currentNode.Text + "\r\n"); //rx文件中原来接收机的编号也要保存下来 string initReceiverNum = GetReceiverNumLine(indStr, currentNode.Text, rxFileStrTemp); //保存info文件中的所有字符串 string receiverNodeInfoTemp = FileOperation.ReadFile(MainWindow.nodeInfoFullPath); //保存接收机在info文件中的位置信息 int initialReceiverNodeSite = receiverNodeInfoTemp.IndexOf(indStr + " " + currentNode.Text + "\r\n"); //保存waveinfo文件中有关接收机的信息 string receiverParStrTemp = FileOperation.ReadFile(MainWindow.waveinfoFilePath); NewReceiverWindow newReceiverWin = new NewReceiverWindow(); //将接收机原来的参数信息装载到窗口中 if (!ReceiverDataRecoverOfProjectTreeView.RecoverReceiverParOfWin(currentNode, receiverParStrTemp, newReceiverWin)) { MessageBox.Show("程序内部发生错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop); FileOperation.RecoverOldRevision(rxFileStrTemp, rxFilePath, receiverParStrTemp, receiverNodeInfoTemp); return(false); } //ReceiverDataRecoverOfProjectTreeView.RecoverReceiverParOfWin(currentNode, receiverParStrTemp, newReceiverWin); //在单击确定按钮之前应将需更改的接收机的信息从各个文件中删除 if (!(ReceiverDelOfRxAndInfoFile(currentNode) && ReceiverDelOfWaveInfo(currentNode) && ReceiverUpdateOfSetup())) { MessageBox.Show("程序内部发生错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop); FileOperation.RecoverOldRevision(rxFileStrTemp, rxFilePath, receiverParStrTemp, receiverNodeInfoTemp); return(false); } MainWindow.creatSuccMesDisp = false; MainWindow.newFuncSign = false; newReceiverWin.Text = "更改接收机"; newReceiverWin.ShowDialog(); switch (newReceiverWin.DialogResult) { case DialogResult.OK: if (MainWindow.IsReturnMidwayInNewProcess) { //FileOperation.WriteFile(rxFileStrTemp, rxFilePath, false); //FileOperation.WriteFile(receiverParStrTemp, MainWindow.waveinfoFilePath, false); //FileOperation.WriteFile(receiverNodeInfoTemp, MainWindow.nodeInfoFullPath, false); FileOperation.RecoverOldRevision(rxFileStrTemp, rxFilePath, receiverParStrTemp, receiverNodeInfoTemp); MainWindow.IsReturnMidwayInNewProcess = false; return(false); } if (!rxStrRecoverInitReceiverNum(currentNode, initReceiverNum, initialReceiverBlockSite, initialReceiverNodeSite)) { if (currentNode.Parent.Text.Equals("点状分布")) { MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[4].Nodes[0].LastNode.Remove(); } else { MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[4].Nodes[1].LastNode.Remove(); } MessageBox.Show("程序内部发生错误,更改操作失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop); FileOperation.RecoverOldRevision(rxFileStrTemp, rxFilePath, receiverParStrTemp, receiverNodeInfoTemp); //FileOperation.WriteFile(rxFileStrTemp, rxFilePath, false); //FileOperation.WriteFile(receiverParStrTemp, MainWindow.waveinfoFilePath, false); //FileOperation.WriteFile(receiverNodeInfoTemp, MainWindow.nodeInfoFullPath, false); return(false); } switch (currentNode.Parent.Text) { case "点状分布": MainWindow.staticTreeView.SelectedNode.Text = MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[4].Nodes[0].LastNode.Text; MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[4].Nodes[0].LastNode.Remove(); break; case "区域分布": MainWindow.staticTreeView.SelectedNode.Text = MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[4].Nodes[1].LastNode.Text; MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[4].Nodes[1].LastNode.Remove(); break; } return(true); //break; default: FileOperation.RecoverOldRevision(rxFileStrTemp, rxFilePath, receiverParStrTemp, receiverNodeInfoTemp); //FileOperation.WriteFile(rxFileStrTemp, rxFilePath, false); //FileOperation.WriteFile(receiverParStrTemp, MainWindow.waveinfoFilePath, false); //FileOperation.WriteFile(receiverNodeInfoTemp, MainWindow.nodeInfoFullPath, false); return(false); //break; } //b = true; //return b; }