//当单击删除时执行此函数 public static bool ReceiverDelMenu(TreeNode currentNode) { bool b = false; DialogResult result = MessageBox.Show("您确定要删除\"" + currentNode.Text + "\"接收机吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (result == DialogResult.OK) { try { //分别调用上面的三个函数 if (ReceiverDelOfRxAndInfoFile(currentNode) && ReceiverDelOfWaveInfo(currentNode) && ReceiverUpdateOfSetup()) { switch (currentNode.Parent.Text) { case "点状分布": //删除match文件中有关辐射源的信息 StringFound.DelBackIndStr(SetupContent.pointReceiverOfRxStr0 + " " + currentNode.Text + "*"); break; case "区域分布": StringFound.DelBackIndStr(SetupContent.gridReceiverOfRxStr0 + " " + currentNode.Text + "*"); break; } b = true; } } catch (Exception e) { LogFileManager.ObjLog.fatal(e.Message, e); //b = false; //MainWindow.IsReturnMidwayInNewProcess = true; } } return(b); }
//从waveinfo文件中删除相应的辐射源信息 private static bool TransmitterDelOfWaveInfo(TreeNode currentNode) { bool b = false; try { string transmitterAllInfo = FileOperation.ReadFile(MainWindow.waveinfoFilePath); //只能用IndexOf(transmitterName)函数,因为"END" + antennaName也含有antennaName string indStr = SetupContent.transmitterStr1Ofsetup + " " + currentNode.Text + "\r\n"; int delStart = transmitterAllInfo.IndexOf(indStr); int delEnd = transmitterAllInfo.LastIndexOf("END" + indStr) + ("END" + indStr).Length; transmitterAllInfo = transmitterAllInfo.Remove(delStart, delEnd - delStart); FileOperation.WriteFile(transmitterAllInfo, MainWindow.waveinfoFilePath, false); StringFound.DelBackIndStr(SetupContent.transmitterStr1Ofsetup + " " + currentNode.Text); b = true; } catch (Exception ex) { LogFileManager.ObjLog.fatal(ex.Message, ex); } return(b); }
//当单击删除时执行如下方法 public static bool AntennaDelMenu(TreeNode currentNode) { bool b = false; if (!StringFound.WaveOrAntennaInUse(currentNode.Text, "antenna")) { DialogResult result = MessageBox.Show("您确定要删除\"" + currentNode.Text + "\"天线吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (result == DialogResult.OK) { //AntennaDelOfSetupAndInfo(currentNode); //AntennaDelOfWaveInfo(currentNode); if (AntennaDelOfSetupAndInfo(currentNode) && AntennaDelOfWaveInfo(currentNode)) { StringFound.DelBackIndStr(SetupContent.antennaStr1 + " " + currentNode.Text + "#"); b = true; } } } else { MessageBox.Show("您所删除的天线正在被使用,请修改辐射源或接收机后再删除此天线!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop); } return(b); }
//单击更新菜单时,执行下面的操作 public static bool AntennaUpdateMenu(TreeNode currentNode) { bool b = false; //保存setup文件中的字符串 string setupStrTemp = MainWindow.setupStr; int initialAntennaBlockSite; string initAntennaNum = null; string antennaNodeInfoTemp = null; int initialAntennaNodeSite; string antennaParStrTemp = null; try { //保存天线在setup文件中的位置 initialAntennaBlockSite = MainWindow.setupStr.IndexOf(SetupContent.antennaStr1 + " " + currentNode.Text + "\r\n"); //保存info文件中的所有字符串,原来天线的编号也要保存下来 initAntennaNum = GetAntennaNumLine(currentNode.Text, MainWindow.setupStr); antennaNodeInfoTemp = FileOperation.ReadFile(MainWindow.nodeInfoFullPath); //保存天线在waveinfo文件中的位置信息 initialAntennaNodeSite = antennaNodeInfoTemp.IndexOf(SetupContent.antennaStr1 + " " + currentNode.Text + "\r\n"); antennaParStrTemp = FileOperation.ReadFile(MainWindow.waveinfoFilePath); } catch (Exception e) { return(false); } NewAntennaWindow newAntennaWin = new NewAntennaWindow(); //newAntennaWin.newdipolewaveformname_comboBox2.DropDownStyle = ComboBoxStyle.DropDown; AntennaDataRecoverOfProjectTree.AlterationAntennaPar(currentNode, antennaParStrTemp, newAntennaWin); //newAntennaWin.newdipolewaveformname_comboBox2.DropDownStyle = ComboBoxStyle.DropDownList; if (!(AntennaDelOfSetupAndInfo(currentNode) && AntennaDelOfWaveInfo(currentNode))) { MessageBox.Show("文件被破坏,导致错误,原工程不可再用!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop); return(false); } MainWindow.creatSuccMesDisp = false; MainWindow.newFuncSign = false; newAntennaWin.Text = "更改天线"; newAntennaWin.ShowDialog(); switch (newAntennaWin.DialogResult) { case DialogResult.OK: if (MainWindow.IsReturnMidwayInNewProcess) { FileOperation.WriteFile(setupStrTemp, MainWindow.mProjectFullName, false); MainWindow.setupStr = setupStrTemp; FileOperation.WriteFile(antennaParStrTemp, MainWindow.waveinfoFilePath, false); FileOperation.WriteFile(antennaNodeInfoTemp, MainWindow.nodeInfoFullPath, false); MainWindow.IsReturnMidwayInNewProcess = false; return(false); } StringFound.DelBackIndStr(SetupContent.antennaStr1 + " " + currentNode.Text + "#"); if (!setupStrRecoverInitAntennaNum(currentNode, initAntennaNum, initialAntennaBlockSite, initialAntennaNodeSite)) { MessageBox.Show("程序内部发生错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop); FileOperation.WriteFile(setupStrTemp, MainWindow.mProjectFullName, false); MainWindow.setupStr = setupStrTemp; FileOperation.WriteFile(antennaParStrTemp, MainWindow.waveinfoFilePath, false); FileOperation.WriteFile(antennaNodeInfoTemp, MainWindow.nodeInfoFullPath, false); return(false); } MainWindow.staticTreeView.SelectedNode.Text = MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[2].LastNode.Text; MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[2].LastNode.Remove(); b = true; break; default: FileOperation.WriteFile(setupStrTemp, MainWindow.mProjectFullName, false); MainWindow.setupStr = setupStrTemp; FileOperation.WriteFile(antennaParStrTemp, MainWindow.waveinfoFilePath, false); FileOperation.WriteFile(antennaNodeInfoTemp, MainWindow.nodeInfoFullPath, false); b = false; break; } //b = true; return(b); }