using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace DPumpHydr.WinFrmUI.Volute { public partial class ctrlGeomBaseInfo : ParasInfoBaseCtrl { public ctrlGeomBaseInfo() { InitializeComponent(); BuildAllTips(); BuildIcon(); } ViewModel.GeomBaseInfo _paras = null; public void SetBindingData(ViewModel.GeomBaseInfo vm) { this._paras = vm; if (vm == null) { return; } this.crownLabel比转速.Text = vm.ns.ToString(); this.mTextBoxEdit速度系数.Text = vm.K3.ToString(); this.mTextBoxEdit基圆直径.Text = vm.D3.ToString(); this.mTextBoxEdit基圆宽度.Text = vm.B3.ToString(); this.crownLabelmin基圆宽度1.Text = vm.B3_Min.ToString(); this.crownLabelmin基圆宽度2.Text = vm.B3_Min.ToString(); this.crownLabelmax基圆宽度1.Text = vm.B3_Max.ToString(); this.crownLabelmax基圆宽度2.Text = vm.B3_Max.ToString(); this.metroTrackBar基圆宽度.Minimum = (int)(vm.B3_Min * 100); this.metroTrackBar基圆宽度.Maximum = (int)(vm.B3_Max * 100); this.metroTrackBar基圆宽度.Value = (int)(vm.B3 * 100); this.mTextBoxEdit隔舌安放角.Text = vm.FAI0.ToString(); this.crownLabelmin隔舌安放角1.Text = vm.FAI0_Min.ToString(); this.crownLabelmin隔舌安放角2.Text = vm.FAI0_Min.ToString(); this.crownLabelmax隔舌安放角1.Text = vm.FAI0_Max.ToString(); this.crownLabelmax隔舌安放角2.Text = vm.FAI0_Max.ToString(); this.metroTrackBar隔舌安放角.Maximum = (int)(vm.FAI0_Max * 100); this.metroTrackBar隔舌安放角.Minimum = (int)(vm.FAI0_Min * 100); this.metroTrackBar隔舌安放角.Value = (int)(vm.FAI0) * 100; } public ViewModel.GeomBaseInfo GetBindingData(out string error) { if (!Verify(out error)) { return null; } error = null; if (_paras == null) { _paras = new ViewModel.GeomBaseInfo(); } _paras.K3 = Convert.ToDouble(this.mTextBoxEdit速度系数.Text); _paras.D3 = Convert.ToDouble(this.mTextBoxEdit基圆直径.Text); _paras.B3 = Convert.ToDouble(this.mTextBoxEdit基圆宽度.Text); _paras.FAI0 = Convert.ToDouble(this.mTextBoxEdit隔舌安放角.Text); return _paras; } public bool Verify(out string error) { error = ""; bool isOk = true; if (string.IsNullOrEmpty(mTextBoxEdit速度系数.Text) || double.Parse(mTextBoxEdit速度系数.Text) == 0) { isOk = false; error = "请输入必填项!"; mTextBoxEdit速度系数.TrailingIcon = GlobalResource.GetTipTrailingIcon(); skyLabel速度系数.Visible = true; } if (string.IsNullOrEmpty(mTextBoxEdit基圆直径.Text) || double.Parse(mTextBoxEdit基圆直径.Text) == 0) { isOk = false; error = "请输入必填项!"; mTextBoxEdit基圆直径.TrailingIcon = GlobalResource.GetTipTrailingIcon(); skyLabel基圆直径.Visible = true; } if (string.IsNullOrEmpty(mTextBoxEdit基圆宽度.Text) || double.Parse(mTextBoxEdit基圆宽度.Text) == 0) { isOk = false; error = "请输入必填项!"; mTextBoxEdit基圆宽度.TrailingIcon = GlobalResource.GetTipTrailingIcon(); skyLabel基圆宽度.Visible = true; } if (string.IsNullOrEmpty(mTextBoxEdit隔舌安放角.Text) || double.Parse(mTextBoxEdit隔舌安放角.Text) == 0) { isOk = false; error = "请输入必填项!"; mTextBoxEdit隔舌安放角.TrailingIcon = GlobalResource.GetTipTrailingIcon(); skyLabel隔舌安放角.Visible = true; } return isOk; } private void BuildIcon() { //输入框前缀图 mTextBoxEdit速度系数.LeadingIcon = GlobalResource.GetLeadingIcon(); mTextBoxEdit基圆直径.LeadingIcon = GlobalResource.GetLeadingIcon(); mTextBoxEdit基圆宽度.LeadingIcon = GlobalResource.GetLeadingIcon(); mTextBoxEdit隔舌安放角.LeadingIcon = GlobalResource.GetLeadingIcon(); } private void BuildAllTips() { metroToolTip第二步提示.SetToolTip(this.mTextBoxEdit速度系数, "K3 解释"); metroToolTip第二步提示.SetToolTip(this.mTextBoxEdit基圆直径, "D3 解释"); metroToolTip第二步提示.SetToolTip(this.mTextBoxEdit基圆宽度, "b3 解释"); metroToolTip第二步提示.SetToolTip(this.metroTrackBar基圆宽度, "b3 解释"); metroToolTip第二步提示.SetToolTip(this.mTextBoxEdit隔舌安放角, "φ0 解释"); metroToolTip第二步提示.SetToolTip(this.metroTrackBar隔舌安放角, "φ0 解释"); } private void mTextBoxEdit速度系数_TextChanged(object sender, EventArgs e) { foreach (var s in mTextBoxEdit速度系数.Text) { if (!double.TryParse(mTextBoxEdit速度系数.Text, out double result) && !string.IsNullOrEmpty(mTextBoxEdit速度系数.Text) ) { mTextBoxEdit速度系数.UseAccent = true; mTextBoxEdit速度系数.ShowAssistiveText = true; mTextBoxEdit速度系数.HelperText = "请输入正确速度系数!"; mTextBoxEdit速度系数.Text = ""; break; } else { mTextBoxEdit速度系数.ShowAssistiveText = false; mTextBoxEdit速度系数.UseAccent = false; } } } private void mTextBoxEdit速度系数_Leave(object sender, EventArgs e) { if (string.IsNullOrEmpty(mTextBoxEdit速度系数.Text) || double.Parse(mTextBoxEdit速度系数.Text) == 0) { mTextBoxEdit速度系数.Text = _paras.K3.ToString(); } } private void mTextBoxEdit速度系数_Enter(object sender, EventArgs e) { skyLabel速度系数.Visible = false; mTextBoxEdit速度系数.TrailingIcon = null; } private void mTextBoxEdit基圆直径_TextChanged(object sender, EventArgs e) { foreach (var s in mTextBoxEdit基圆直径.Text) { if (!double.TryParse(mTextBoxEdit基圆直径.Text, out double result) && !string.IsNullOrEmpty(mTextBoxEdit基圆直径.Text) ) { mTextBoxEdit基圆直径.UseAccent = true; mTextBoxEdit基圆直径.ShowAssistiveText = true; mTextBoxEdit基圆直径.HelperText = "请输入正确基圆直径!"; mTextBoxEdit基圆直径.Text = ""; break; } else { mTextBoxEdit基圆直径.ShowAssistiveText = false; mTextBoxEdit基圆直径.UseAccent = false; } } } private void mTextBoxEdit基圆直径_Leave(object sender, EventArgs e) { if (string.IsNullOrEmpty(mTextBoxEdit基圆直径.Text) || double.Parse(mTextBoxEdit基圆直径.Text) == 0) { mTextBoxEdit基圆直径.Text = _paras.D3.ToString(); } } private void mTextBoxEdit基圆直径_Enter(object sender, EventArgs e) { skyLabel基圆直径.Visible = false; mTextBoxEdit基圆直径.TrailingIcon = null; } private void mTextBoxEdit基圆宽度_TextChanged(object sender, EventArgs e) { foreach (var s in mTextBoxEdit基圆宽度.Text) { if (!double.TryParse(mTextBoxEdit基圆宽度.Text, out double result) && !string.IsNullOrEmpty(mTextBoxEdit基圆宽度.Text)) { mTextBoxEdit基圆宽度.UseAccent = true; mTextBoxEdit基圆宽度.ShowAssistiveText = true; mTextBoxEdit基圆宽度.HelperText = "请输入正确基圆宽度!"; mTextBoxEdit基圆宽度.Text = ""; break; } else { mTextBoxEdit基圆宽度.ShowAssistiveText = false; mTextBoxEdit基圆宽度.UseAccent = false; } } } private void mTextBoxEdit基圆宽度_Leave(object sender, EventArgs e) { if (string.IsNullOrEmpty(mTextBoxEdit基圆宽度.Text) || double.Parse(mTextBoxEdit基圆宽度.Text) == 0) { mTextBoxEdit基圆宽度.Text = _paras.B3.ToString(); } else { if (Convert.ToDouble(mTextBoxEdit基圆宽度.Text) > Convert.ToDouble(metroTrackBar基圆宽度.Maximum) / 100 || Convert.ToDouble(mTextBoxEdit基圆宽度.Text) < Convert.ToDouble(metroTrackBar基圆宽度.Minimum) / 100) { mTextBoxEdit基圆宽度.Text = _paras.B3.ToString(); MessageBox.Show("输入基圆宽度超出范围!已使用默认计算值!"); } } } private void mTextBoxEdit基圆宽度_Enter(object sender, EventArgs e) { skyLabel基圆宽度.Visible = false; mTextBoxEdit基圆宽度.TrailingIcon = null; } private void mTextBoxEdit隔舌安放角_TextChanged(object sender, EventArgs e) { foreach (var s in mTextBoxEdit隔舌安放角.Text) { if (!double.TryParse(mTextBoxEdit隔舌安放角.Text, out double result) && !string.IsNullOrEmpty(mTextBoxEdit隔舌安放角.Text) ) { mTextBoxEdit隔舌安放角.UseAccent = true; mTextBoxEdit隔舌安放角.ShowAssistiveText = true; mTextBoxEdit隔舌安放角.HelperText = "请输入正确隔舌安放角!"; mTextBoxEdit隔舌安放角.Text = ""; break; } else { mTextBoxEdit隔舌安放角.ShowAssistiveText = false; mTextBoxEdit隔舌安放角.UseAccent = false; } } } private void mTextBoxEdit隔舌安放角_Leave(object sender, EventArgs e) { if (string.IsNullOrEmpty(mTextBoxEdit隔舌安放角.Text) || double.Parse(mTextBoxEdit隔舌安放角.Text) == 0) { mTextBoxEdit隔舌安放角.Text = _paras.FAI0.ToString(); } else { if (Convert.ToDouble(mTextBoxEdit隔舌安放角.Text) > Convert.ToDouble(metroTrackBar隔舌安放角.Maximum) / 100 || Convert.ToDouble(mTextBoxEdit隔舌安放角.Text) < Convert.ToDouble(metroTrackBar隔舌安放角.Minimum) / 100) { mTextBoxEdit隔舌安放角.Text = _paras.FAI0.ToString(); MessageBox.Show("输入隔舌安放角超出范围!已使用默认计算值!"); } } } private void mTextBoxEdit隔舌安放角_Enter(object sender, EventArgs e) { skyLabel隔舌安放角.Visible = false; mTextBoxEdit隔舌安放角.TrailingIcon = null; } private void metroTrackBar基圆宽度_Scroll(object sender) { double breadth = Convert.ToDouble(metroTrackBar基圆宽度.Value) / 100; mTextBoxEdit基圆宽度.Text = breadth.ToString(); mTextBoxEdit基圆宽度.TrailingIcon = null; } private void metroTrackBar隔舌安放角_Scroll(object sender) { double angle = Convert.ToDouble(metroTrackBar隔舌安放角.Value) / 100; mTextBoxEdit隔舌安放角.Text = angle.ToString(); mTextBoxEdit隔舌安放角.TrailingIcon = null; } } }