yangyin
2025-02-28 baa80d650adebcce70f1113cc1020c6039c159a0
WinFrmUI/DPumpHydr.WinFrmUI.Volute/³öË®Éè¼Æ/²ÎÊý¿Ø¼þ/SetOutflowParaArcCtrl.cs
@@ -1,4 +1,5 @@
using DPumpHydr.WinFrmUI.RLT.Controls;
using DPumpHydr.WinFrmUI.Volute.ViewModel;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -9,7 +10,7 @@
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DPumpHydr.WinFrmUI.Volute.出水设计.参数控件
namespace DPumpHydr.WinFrmUI.Volute
{
    public partial class SetOutflowParaArcCtrl : UserControl
    {
@@ -17,15 +18,257 @@
        {
            InitializeComponent();
        }
        public ViewModel.OutflowParas GetBindingData(out string error)
        {
            error = "";
            if (!Verify(out error))
            {
                return null;
            }
            if (_otuflowParas == null)
                _otuflowParas = new OutflowParas();
            if (string.IsNullOrEmpty(mlTextBoxEditH.Text))
            {
                _otuflowParas.H1 = 0;
                _otuflowParas.H2 = 0;
            }
            else
            {
                _otuflowParas.H1 = Convert.ToDouble(mlTextBoxEditH.Text);
                _otuflowParas.H2 = Convert.ToDouble(mlTextBoxEditH.Text);
            }
            _otuflowParas.Heigh = Convert.ToDouble(mlTextBoxEdit扩散管长度.Text);
            _otuflowParas.Septalradius = Convert.ToDouble(mlTextBoxEditr.Text);
            _otuflowParas.Dia = Convert.ToDouble(mlTextBoxEdit扩散管出口直径.Text);
            _otuflowParas.Offset = Convert.ToDouble(mlTextBoxEdit中心距离.Text);
            _otuflowParas.R1 = Convert.ToDouble(mlTextBoxEdit圆弧1.Text);
            _otuflowParas.R2 = Convert.ToDouble(mlTextBoxEdit圆弧2.Text);
            return _otuflowParas;
        }
        public bool Verify(out string error)
        {
            error = "";
            bool isOk = true;
            if (string.IsNullOrEmpty(mlTextBoxEdit扩散管长度.Text) || mlTextBoxEdit扩散管长度.Text == "请输入扩散管长度" || double.Parse(mlTextBoxEdit扩散管长度.Text) == 0)
            {
                error = "请输入扩散管长度!";
                isOk = false;
                mlTextBoxEdit扩散管长度.TrailingIcon = GlobalResource.GetTipTrailingIcon();
                skyLabel扩散管长度.Visible = true;
            }
            if (string.IsNullOrEmpty(mlTextBoxEdit中心距离.Text) || mlTextBoxEdit中心距离.Text == "请输入中心距离")
            {
                error = "请输入中心距离!";
                isOk = false;
                mlTextBoxEdit中心距离.TrailingIcon = GlobalResource.GetTipTrailingIcon();
                skyLabel中心距离.Visible = true;
            }
            if (string.IsNullOrEmpty(mlTextBoxEdit扩散管出口直径.Text) || mlTextBoxEdit扩散管出口直径.Text == "请输入扩散管出口直径" || double.Parse(mlTextBoxEdit扩散管出口直径.Text) == 0)
            {
                error = "请输入扩散管出口直径!";
                isOk = false;
                mlTextBoxEdit扩散管出口直径.TrailingIcon = GlobalResource.GetTipTrailingIcon();
                skyLabel扩散管出口直径.Visible = true;
            }
            if (string.IsNullOrEmpty(mlTextBoxEditr.Text) || mlTextBoxEditr.Text == "请输入隔舌" || double.Parse(mlTextBoxEditr.Text) == 0)
            {
                error = "请输入隔舌圆角半径!";
                isOk = false;
                mlTextBoxEditr.TrailingIcon = GlobalResource.GetTipTrailingIcon();
                mlTextBoxEditr.Visible = true;
            }
            if (string.IsNullOrEmpty(mlTextBoxEdit圆弧1.Text) || mlTextBoxEdit圆弧1.Text == "请输入圆弧r1" || double.Parse(mlTextBoxEdit圆弧1.Text) == 0)
            {
                error = "请输入圆弧r1!";
                isOk = false;
                mlTextBoxEdit圆弧1.TrailingIcon = GlobalResource.GetTipTrailingIcon();
                mlTextBoxEdit圆弧1.Visible = true;
            }
            if (string.IsNullOrEmpty(mlTextBoxEdit圆弧2.Text) || mlTextBoxEdit圆弧2.Text == "请输入圆弧r2" || double.Parse(mlTextBoxEdit圆弧2.Text) == 0)
            {
                error = "请输入圆弧r2!";
                isOk = false;
                mlTextBoxEdit圆弧2.TrailingIcon = GlobalResource.GetTipTrailingIcon();
                mlTextBoxEdit圆弧2.Visible = true;
            }
            if (mlTextBoxEditH.Text == "请输入圆弧r1")
            {
                error = "请输入隔舌圆角半径!";
                isOk = false;
                mlTextBoxEditH.TrailingIcon = GlobalResource.GetTipTrailingIcon();
                mlTextBoxEditH.Visible = true;
            }
            return isOk;
        }
        public Func<ViewModel.OutflowParas, bool> OnRefreshShape = null;
        public void SetA_state(bool isEnabled)
        {
            if (!isEnabled)
            {
                mlTextBoxEdit中心距离.Text = 0.ToString();
                mlTextBoxEdit中心距离.Enabled = false;
            }
            else
            {
                mlTextBoxEdit中心距离.Enabled = true;
            }
        }
        ViewModel.OutflowParas _otuflowParas = null;
        ViewModel.HdrBaseInfo _hdrBaseInfo = null;
        ViewModel.GeomBaseInfo _geomBaseInfo = null;
        ViewModel.SectionBundleInfo _sectionBundleInfo = null;
        public bool IsInvokeRefreshShapeAble { get; set; } = true;
        public void InitialParas(
              ViewModel.HdrBaseInfo hdrBaseInfo,
              ViewModel.GeomBaseInfo geomBaseInfo,
              ViewModel.SectionBundleInfo sectionBundleInfo)
        {
            _hdrBaseInfo = hdrBaseInfo;
            _geomBaseInfo = geomBaseInfo;
            _sectionBundleInfo = sectionBundleInfo;
        }
        public void SetBindingData(ViewModel.OutflowParasCalcReponse reponse)
        {
        }
        public void SetBindingData(ViewModel.OutflowParas outflowParas)
        {
            if (outflowParas == null)
            {
                return;
            }
            _otuflowParas = outflowParas;
            mlTextBoxEdit圆弧1.Text = outflowParas.R1.ToString();
            mlTextBoxEdit圆弧2.Text = outflowParas.R2.ToString();
            mlTextBoxEdit扩散管长度.Text = outflowParas.Heigh.ToString();
            mlTextBoxEditH.Text = outflowParas.H1.ToString();
            mlTextBoxEditr.Text = outflowParas.Septalradius.ToString();
            mlTextBoxEdit扩散管出口直径.Text = outflowParas.Dia.ToString();
            mlTextBoxEdit中心距离.Text = outflowParas.Offset.ToString();
        }
        private void mlTextBoxEdit圆弧1_Enter(object sender, EventArgs e)
        {
            if (sender is MaterialTextBoxEdit materialTextBoxEdit)
            skyLabel圆弧r1.Visible = false;
            mlTextBoxEdit圆弧1.TrailingIcon = null;
            if (mlTextBoxEdit圆弧1.Text == "请输入圆弧r1")
            {
                if (materialTextBoxEdit.Text.Contains("请输入"))
                {
                    materialTextBoxEdit.Text = "";
                }
                mlTextBoxEdit圆弧1.Text = "";
            }
        }
        private void mlTextBoxEdit圆弧2_Enter(object sender, EventArgs e)
        {
            skyLabel圆弧r2.Visible = false;
            mlTextBoxEdit圆弧2.TrailingIcon = null;
            if (mlTextBoxEdit圆弧2.Text == "请输入圆弧r2")
            {
                mlTextBoxEdit圆弧2.Text = "";
            }
        }
        private void mlTextBoxEditH_Enter(object sender, EventArgs e)
        {
            skyLabelH.Visible = false;
            mlTextBoxEditH.TrailingIcon = null;
            if (mlTextBoxEditH.Text == "请输入H")
            {
                mlTextBoxEditH.Text = "";
            }
        }
        private void mlTextBoxEdit中心距离_Enter(object sender, EventArgs e)
        {
            skyLabel中心距离.Visible = false;
            mlTextBoxEdit中心距离.TrailingIcon = null;
            if (mlTextBoxEdit中心距离.Text == "请输入A")
            {
                mlTextBoxEdit中心距离.Text = "";
            }
        }
        private void mlTextBoxEdit扩散管出口直径_Enter(object sender, EventArgs e)
        {
            skyLabel扩散管出口直径.Visible = false;
            mlTextBoxEdit扩散管出口直径.TrailingIcon = null;
            if (mlTextBoxEdit扩散管出口直径.Text == "请输入扩散管出口直径")
            {
                mlTextBoxEdit扩散管出口直径.Text = "";
            }
        }
        private void mlTextBoxEdit扩散管长度_Enter(object sender, EventArgs e)
        {
            skyLabel扩散管长度.Visible = false;
            mlTextBoxEdit扩散管长度.TrailingIcon = null;
            if (mlTextBoxEdit扩散管长度.Text == "请输入扩散管长度")
            {
                mlTextBoxEdit扩散管长度.Text = "";
            }
        }
        private void mlTextBoxEditr_Enter(object sender, EventArgs e)
        {
            skyLabelr.Visible = false;
            mlTextBoxEditr.TrailingIcon = null;
            if (mlTextBoxEditr.Text == "请输入隔舌")
            {
                mlTextBoxEditr.Text = "";
            }
        }
        private void mlTextBoxEdit圆弧1_Leave(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(mlTextBoxEdit圆弧1.Text) || double.Parse(mlTextBoxEdit圆弧1.Text) < 0)
            {
                mlTextBoxEdit圆弧1.Text = "请输入圆弧r1";
            }
        }
        private void mlTextBoxEdit圆弧2_Leave(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(mlTextBoxEdit圆弧2.Text) || double.Parse(mlTextBoxEdit圆弧2.Text) < 0)
            {
                mlTextBoxEdit圆弧2.Text = "请输入圆弧r2";
            }
        }
        private void mlTextBoxEditH_Leave(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(mlTextBoxEditH.Text) || double.Parse(mlTextBoxEditH.Text) < 0)
            {
                mlTextBoxEditH.Text = "请输入H";
            }
        }
        private void mlTextBoxEdit中心距离_Leave(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(mlTextBoxEdit中心距离.Text) || double.Parse(mlTextBoxEdit中心距离.Text) < 0)
            {
                mlTextBoxEdit中心距离.Text = "请输入A";
            }
        }
        private void mlTextBoxEdit扩散管出口直径_Leave(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(mlTextBoxEdit扩散管出口直径.Text) || double.Parse(mlTextBoxEdit扩散管出口直径.Text) < 0)
            {
                mlTextBoxEdit扩散管出口直径.Text = "请输入扩散管出口直径";
            }
        }
        private void mlTextBoxEdit扩散管长度_Leave(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(mlTextBoxEdit扩散管长度.Text) || double.Parse(mlTextBoxEdit扩散管长度.Text) < 0)
            {
                mlTextBoxEdit扩散管长度.Text = "请输入扩散管长度";
            }
        }
        private void mlTextBoxEditr_Leave(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(mlTextBoxEditr.Text) || double.Parse(mlTextBoxEditr.Text) < 0)
            {
                mlTextBoxEditr.Text = "请输入隔舌";
            }
        }
    }