Example #1
0
        public static bool WaveformUpdateMenu(TreeNode currentNode)
        {
            //先将setupStr保存在一个字符串setupStrTemp中
            string setupStrTemp = MainWindow.setupStr;
            //将waveinfo文件中的内容保存在字符串waveAllInfoTemp中
            string waveformParStrTemp = FileOperation.ReadFile(MainWindow.waveinfoFilePath);

            //将info文件的内容保存到字符串allNodesInfoTemp中
            string waveformNodeInfoTemp     = FileOperation.ReadFile(MainWindow.nodeInfoFullPath);
            int    initialWaveformNodeSite  = waveformNodeInfoTemp.IndexOf(SetupContent.waveFormStr1 + " " + currentNode.Text + "\r\n");
            int    initialWaveformBlockSite = MainWindow.setupStr.IndexOf(SetupContent.waveFormStr1 + " " + currentNode.Text + "\r\n");

            NewWaveformWindow wfw = new NewWaveformWindow();

            //向窗体中的控件填写以前的内容
            WaveformDataRecoverOfProjectTree.AlterationWavePar(currentNode, waveformParStrTemp, wfw);
            //int siteOfUpdateWave = setupStr.IndexOf(SetupContent.waveFormStr1 + " " + currentNode.Text);

            //保存波形编号的那一行
            string initWaveformNum = GetWaveformNumLine(currentNode.Text, MainWindow.setupStr);

            //先删除需要更改的波形,否则同名的波形不能写到setup文件中
            if (!(WaveformDelOfSetupAndInfo(currentNode) && WaveformDelOfWaveInfo(currentNode)))
            {
                MessageBox.Show("文件被破坏,导致错误,原工程不可再用!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                return(false);
            }

            MainWindow.creatSuccMesDisp = false;
            MainWindow.newFuncSign      = false;
            wfw.Text = "更改波形";

            //新建波形窗口可见,只能用showDialog()
            wfw.ShowDialog();
            //判断在新建波形窗口中单击的是哪个按钮
            switch (wfw.DialogResult)
            {
            case DialogResult.OK:
                //删除单击确定按钮后新添加的波形结点
                //在新建波形窗口中单击确定按钮后,会在工程树波形结点的最后添加更改的波形,将其的名字赋给选中的结点,
                //再将确定按钮增加的波形删除掉
                if (MainWindow.IsReturnMidwayInNewProcess)
                {
                    //myEventArgs e = new myEventArgs( setupStrTemp, waveformParStrTemp, waveformNodeInfoTemp);
                    //wfw.newsinusoidcancel_button2.Click -= new System.EventHandler(wfw.newSinusoidCancel_button2_Click);
                    //wfw.newsinusoidcancel_button2.Click +=e.A ;
                    //wfw.ShowDialog();

                    FileOperation.WriteFile(setupStrTemp, MainWindow.mProjectFullName, false);
                    MainWindow.setupStr = setupStrTemp;
                    FileOperation.WriteFile(waveformParStrTemp, MainWindow.waveinfoFilePath, false);
                    FileOperation.WriteFile(waveformNodeInfoTemp, MainWindow.nodeInfoFullPath, false);



                    MainWindow.IsReturnMidwayInNewProcess = false;
                    return(false);
                }
                //if (cancelOfUpdate)
                //{
                //    return true;
                //}
                if (!setupStrRecoverInitWaveformNum(currentNode, initWaveformNum, initialWaveformBlockSite, initialWaveformNodeSite))
                {
                    MessageBox.Show("程序内部发生错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop);

                    FileOperation.WriteFile(setupStrTemp, MainWindow.mProjectFullName, false);
                    MainWindow.setupStr = setupStrTemp;
                    FileOperation.WriteFile(waveformParStrTemp, MainWindow.waveinfoFilePath, false);
                    FileOperation.WriteFile(waveformNodeInfoTemp, MainWindow.nodeInfoFullPath, false);
                    return(false);
                }
                MainWindow.staticTreeView.SelectedNode.Text = MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[1].LastNode.Text;
                MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[1].LastNode.Remove();
                return(true);

            default:
                FileOperation.WriteFile(setupStrTemp, MainWindow.mProjectFullName, false);
                MainWindow.setupStr = setupStrTemp;
                FileOperation.WriteFile(waveformParStrTemp, MainWindow.waveinfoFilePath, false);
                FileOperation.WriteFile(waveformNodeInfoTemp, MainWindow.nodeInfoFullPath, false);
                //b= false;
                return(false);
            }
            //return b;
        }