tangxu
2024-11-03 4ee432aa0ec5ec8058d720b49ae7f46e5ad1c49c
WinFrmUI/DPumpHydr.WinFrmUI.Volute/¶ÏÃæÉè¼Æ/ctrlSectionBaseInfo.cs
@@ -8,6 +8,8 @@
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DPumpHydr.WinFrmUI.RLT.Controls;
using DPumpHydr.WinFrmUI.Volute.ViewModel;
using static System.Runtime.InteropServices.JavaScript.JSType;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
@@ -24,26 +26,112 @@
            BuildAllTips();
            BuildIcon();
        }
        ViewModel.SectionBaseInfo _paras = null;
        public void SetBindingData(ViewModel.SectionBaseInfo vm)
        {
            this._paras = vm;
            if (vm == null)
            {
                return;
            }
            this.mTextBoxEdit蜗室平均速度.Text = vm.V3.ToString();
            for (var argument = 1; argument <= 8; argument++)
            {
                var controlnamey1 = $"skyTextBox断面y1{argument}";
                var controlnamey2 = $"skyTextBox断面y2{argument}";
                var controlname断面面积 = $"skyTextBox断面面积{argument}";
                SkyTextBox controly1 = this.Controls.Find(controlnamey1, true).FirstOrDefault() as SkyTextBox;
                SkyTextBox controly2 = this.Controls.Find(controlnamey2, true).FirstOrDefault() as SkyTextBox;
                SkyTextBox control断面面积 = this.Controls.Find(controlname断面面积, true).FirstOrDefault() as SkyTextBox;
                if (controly1 != null)
                    controly1.Text = vm.GaMa1[argument].ToString();
                if (controly2 != null)
                    controly2.Text = vm.GaMa2[argument].ToString();
                if (control断面面积 != null)
                    control断面面积.Text = vm.Area[argument].ToString();
            }
            if (_paras.ShapeType == eSectionShapeType.对称)
            {
                RBtn断面对称梯形.Checked = true;
                RBtn不对称梯形.Checked = false;
                RBtn矩形.Checked = false;
            }
            if (_paras.ShapeType == eSectionShapeType.不对称)
            {
                RBtn断面对称梯形.Checked = false;
                RBtn不对称梯形.Checked = true;
                RBtn矩形.Checked = false;
            }
            if (_paras.ShapeType == eSectionShapeType.矩形)
            {
                RBtn断面对称梯形.Checked = false;
                RBtn不对称梯形.Checked = false;
                RBtn矩形.Checked = true;
            }
        }
        public ViewModel.SectionBaseInfo GetBindingData(out string error)
        {
            if (!Verify(out error))
            {
                return null;
            }
            error = null;
            if (_paras == null)
            {
                _paras = new ViewModel.SectionBaseInfo();
            }
            _paras.V3 = Convert.ToDouble(this.mTextBoxEdit蜗室平均速度.Text);
            for (var argument = 1; argument <= 8; argument++)
            {
                var controlnamey1 = $"skyTextBox断面y1{argument}";
                var controlnamey2 = $"skyTextBox断面y2{argument}";
                var controlname断面面积 = $"skyTextBox断面面积{argument}";
                SkyTextBox controlY1 = this.Controls.Find(controlnamey1, true).FirstOrDefault() as SkyTextBox;
                SkyTextBox controlY2 = this.Controls.Find(controlnamey2, true).FirstOrDefault() as SkyTextBox;
                SkyTextBox control断面面积 = this.Controls.Find(controlname断面面积, true).FirstOrDefault() as SkyTextBox;
                if (controlY1 != null)
                    _paras.GaMa1[argument] = Convert.ToDouble(controlY1.Text);
                if (controlY2 != null)
                    _paras.GaMa2[argument] = Convert.ToDouble(controlY2.Text);
                if (control断面面积 != null)
                    _paras.Area[argument] = Convert.ToDouble(control断面面积.Text);
            }
            _paras.GaMa1[8] = Convert.ToDouble(this.skyTextBox断面y18.Text);
            _paras.GaMa2[8] = Convert.ToDouble(this.skyTextBox断面y28.Text);
            if (RBtn断面对称梯形.Checked)
            {
                _paras.ShapeType = eSectionShapeType.对称;
            }
            if (RBtn不对称梯形.Checked)
            {
                _paras.ShapeType = eSectionShapeType.不对称;
            }
            if (RBtn矩形.Checked)
            {
                _paras.ShapeType = eSectionShapeType.矩形;
            }
            return _paras;
        }
        public bool Verify(out string error)
        {
            error = "";
            bool isOk = true;
            if (string.IsNullOrEmpty(mTextBoxEdit蜗室平均速度.Text) || mTextBoxEdit蜗室平均速度.Text == "请输入")
            if (string.IsNullOrEmpty(mTextBoxEdit蜗室平均速度.Text) || double.Parse(mTextBoxEdit蜗室平均速度.Text) == 0)
            {
                error = "请输入必填项!";
                isOk = false;
                mTextBoxEdit蜗室平均速度.TrailingIcon = GlobalResource.GetTipTrailingIcon();
                skyLabel蜗室平均速度.Visible = true;
            }
            if (string.IsNullOrEmpty(skyTextBox断面VIIIy1.Text))
            if (string.IsNullOrEmpty(skyTextBox断面y18.Text) || double.Parse(skyTextBox断面y18.Text) == 0)
            {
                error = "请输入必填项!";
                isOk = false;
                skyLabel提示y2.Visible = false;
                skyLabely2.Visible = true;
            }
            if (string.IsNullOrEmpty(skyTextBox断面VIIIy2.Text))
            if (string.IsNullOrEmpty(skyTextBox断面y28.Text) || double.Parse(skyTextBox断面y28.Text) == 0)
            {
                error = "请输入必填项!";
                isOk = false;
@@ -53,13 +141,40 @@
            return isOk;
        }
        public bool IsParameterChange()
        {
            if(double.Parse(mTextBoxEdit蜗室平均速度.Text) != this._paras.V3)
            {
                return true;
            }
            if(RBtn断面对称梯形.Checked && this._paras.ShapeType == eSectionShapeType.对称)
            {
                return true;
            } if(RBtn不对称梯形.Checked && this._paras.ShapeType == eSectionShapeType.不对称)
            {
                return true;
            } if(RBtn矩形.Checked && this._paras.ShapeType == eSectionShapeType.矩形)
            {
                return true;
            }
            if (double.Parse(skyTextBox断面y18.Text) != this._paras.GaMa1[8])
            {
                return true;
            }if (double.Parse(skyTextBox断面y28.Text) != this._paras.GaMa2[8])
            {
                return true;
            }
            return false;
        }
        private void BuildIcon()
        {
            //对话框前缀图片
            mTextBoxEdit蜗室平均速度.LeadingIcon = GlobalResource.GetLeadingIcon();
            //断面形状图片
            metroTile对称梯形.BackgroundImage = GlobalResource.BuildImage("duichentixing.png",97,88);
            metroTile对称梯形.BackgroundImage = GlobalResource.BuildImage("duichentixing.png", 97, 88);
            metroTile不对称梯形.BackgroundImage = GlobalResource.BuildImage("buduichentixing.png", 97, 88);
            metroTile矩形.BackgroundImage = GlobalResource.BuildImage("juxing.png", 97, 88);
        }
@@ -70,8 +185,8 @@
            metroToolTip第三步提示.SetToolTip(this.metroTile不对称梯形, "不对称梯形");
            metroToolTip第三步提示.SetToolTip(this.metroTile矩形, "矩形");
            metroToolTip第三步提示.SetToolTip(this.mTextBoxEdit蜗室平均速度, "液体在蜗室内流动\n时的平均速度");
            metroToolTip第三步提示.SetToolTip(this.skyTextBox断面VIIIy1, "y1 è§£é‡Š");
            metroToolTip第三步提示.SetToolTip(this.skyTextBox断面VIIIy2, "y2 è§£é‡Š");
            metroToolTip第三步提示.SetToolTip(this.skyTextBox断面y18, "y1 è§£é‡Š");
            metroToolTip第三步提示.SetToolTip(this.skyTextBox断面y28, "y2 è§£é‡Š");
        }
        private void metroTile断面形状1_Click(object sender, EventArgs e)
        {
@@ -99,17 +214,13 @@
        {
            skyLabel蜗室平均速度.Visible = false;
            mTextBoxEdit蜗室平均速度.TrailingIcon = null;
            if (mTextBoxEdit蜗室平均速度.Text == "请输入")
            {
                mTextBoxEdit蜗室平均速度.Text = "";
            }
        }
        private void mTextBoxEdit蜗室平均速度_Leave(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(mTextBoxEdit蜗室平均速度.Text))
            if (string.IsNullOrEmpty(mTextBoxEdit蜗室平均速度.Text) || double.Parse(mTextBoxEdit蜗室平均速度.Text) == 0)
            {
                mTextBoxEdit蜗室平均速度.Text = "请输入";
                mTextBoxEdit蜗室平均速度.Text = _paras.V3.ToString();
            }
        }
@@ -117,7 +228,7 @@
        {
            foreach (var s in mTextBoxEdit蜗室平均速度.Text)
            {
                if (!double.TryParse(mTextBoxEdit蜗室平均速度.Text, out double result) && !string.IsNullOrEmpty(mTextBoxEdit蜗室平均速度.Text) && mTextBoxEdit蜗室平均速度.Text != "请输入")
                if (!double.TryParse(mTextBoxEdit蜗室平均速度.Text, out double result) && !string.IsNullOrEmpty(mTextBoxEdit蜗室平均速度.Text) )
                {
                    mTextBoxEdit蜗室平均速度.UseAccent = true;
                    mTextBoxEdit蜗室平均速度.ShowAssistiveText = true;
@@ -135,11 +246,11 @@
        private void skyTextBox断面VIIIy1_TextChanged(object sender, EventArgs e)
        {
            foreach (var s in skyTextBox断面VIIIy1.Text)
            foreach (var s in skyTextBox断面y18.Text)
            {
                if (!double.TryParse(skyTextBox断面VIIIy1.Text, out double result) && !string.IsNullOrEmpty(skyTextBox断面VIIIy1.Text))
                if (!double.TryParse(skyTextBox断面y18.Text, out double result) && !string.IsNullOrEmpty(skyTextBox断面y18.Text))
                {
                    skyTextBox断面VIIIy1.Text = "";
                    skyTextBox断面y18.Text = _paras.GaMa1[8].ToString();
                    skyLabel提示y1.Visible = true;
                    break;
                }
@@ -148,11 +259,11 @@
        private void skyTextBox断面VIIIy2_TextChanged(object sender, EventArgs e)
        {
            foreach (var s in skyTextBox断面VIIIy2.Text)
            foreach (var s in skyTextBox断面y28.Text)
            {
                if (!double.TryParse(skyTextBox断面VIIIy2.Text, out double result) && !string.IsNullOrEmpty(skyTextBox断面VIIIy2.Text))
                if (!double.TryParse(skyTextBox断面y28.Text, out double result) && !string.IsNullOrEmpty(skyTextBox断面y28.Text))
                {
                    skyTextBox断面VIIIy2.Text = "";
                    skyTextBox断面y28.Text = _paras.GaMa2[8].ToString();
                    skyLabel提示y2.Visible = true;
                    break;
                }
@@ -171,7 +282,7 @@
        private void mBtn计算断面面积_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(mTextBoxEdit蜗室平均速度.Text) || mTextBoxEdit蜗室平均速度.Text != "请输入蜗室平均速度")
            if (string.IsNullOrEmpty(mTextBoxEdit蜗室平均速度.Text) || mTextBoxEdit蜗室平均速度.Text == "请输入蜗室平均速度")
            {
                skyLabel蜗室平均速度.Visible = true;
                MessageBox.Show("请先输入蜗室平均速度!");
@@ -181,12 +292,12 @@
        private void mlBtn更改断面角度_Click(object sender, EventArgs e)
        {
            if (!RBtn断面对称梯形.Checked && !RBtn不对称梯形.Checked && !RBtn不对称梯形.Checked)
            if (!RBtn断面对称梯形.Checked && !RBtn不对称梯形.Checked && !RBtn矩形.Checked)
            {
                MessageBox.Show("请先选择断面类型!");
                return;
            }
            if (string.IsNullOrEmpty(skyTextBox断面VIIIy1.Text) || string.IsNullOrEmpty(skyTextBox断面VIIIy2.Text))
            if (string.IsNullOrEmpty(skyTextBox断面y18.Text) || string.IsNullOrEmpty(skyTextBox断面y28.Text))
            {
                skyLabel提示y2.Visible = false;
                skyLabel提示y1.Visible = false;
@@ -197,7 +308,22 @@
            }
        }
        private void RBtn断面对称梯形_CheckedChanged(object sender)
        {
            if (RBtn断面对称梯形.Checked)
            {
                skyTextBox断面y18.Enabled = true;
                skyTextBox断面y28.Enabled = false;
            }
        }
        private void RBtn不对称梯形_CheckedChanged(object sender)
        {
            if (RBtn不对称梯形.Checked)
            {
                skyTextBox断面y18.Enabled = true;
                skyTextBox断面y28.Enabled = true;
            }
        }
    }
}