using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace IStation.WinFrmUI.CalcErQu { public partial class CalcWizardMainContainter : DocumentPage { public CalcWizardMainContainter() { InitializeComponent(); this.PageTitle.Caption = "优化方案"; this.SurfaceGuid = new SurfaceGuid() { Modular = eModular.CalcErQu2, Function = this.PageTitle.Caption }; } pageCalcResult pageCalcResult = null; pageCalcParas pageCalcParas = null; private void CalcWizardMainContainter_Load(object sender, EventArgs e) { pageCalcParas = new pageCalcParas(); pageCalcParas.Name = "pageCalcParas"; pageCalcParas.Dock = DockStyle.Fill; pageCalcParas.OnNextPageEvent += () => { GoToPage2(); }; this.Controls.Add(pageCalcParas); pageCalcParas.InitialDataSource(); } public override void InitialDataSource() { base.InitialDataSource(); } private string _lastAnaRequestStr = string.Empty; private void GoToPage2() { if (pageCalcResult == null) { pageCalcResult = new pageCalcResult(); pageCalcResult.Name = "pageCalcResult"; pageCalcResult.Dock = DockStyle.Fill; pageCalcResult.SetAnaType(Wizard.eAnaPrjType.Opt); pageCalcResult.OnBeforePageEvent += () => { GoToPage1(); }; this.Controls.Add(pageCalcResult); } var anaRequest = pageCalcParas.GetAnaRequest(); if (anaRequest == null) return; var currentJson = JsonHelper.Object2Json(anaRequest); if (!_lastAnaRequestStr.Equals(currentJson) || pageCalcParas.IsReCalc()) { _lastAnaRequestStr = currentJson; IStation.WinFrmUI.WaitFrmHelper.ShowWaitForm(this); pageCalcResult.AnaOptResult(anaRequest, (bol) => { IStation.WinFrmUI.WaitFrmHelper.HideWaitForm(this); if (bol) { pageCalcParas.Hide(); pageCalcResult.Show(); } }); } else { pageCalcParas.Hide(); pageCalcResult.Show(); } } private void GoToPage1() { if (pageCalcResult != null) { pageCalcResult.Hide(); } pageCalcParas.Show(); } } }