using DPumpHydr.WinFrmUI.RLT.Controls;
|
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 : UserControl
|
{
|
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 = this.metroTrackBar基圆宽度.Minimum;
|
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();
|
//var a = vm.FAI0_Min * 100;
|
//this.metroTrackBar隔舌安放角.Minimum = Convert.ToInt32(a);
|
//this.metroTrackBar隔舌安放角.Maximum = Convert.ToInt32(vm.FAI0_Max * 100);
|
//this.metroTrackBar隔舌安放角.Value = this.metroTrackBar隔舌安放角.Minimum;
|
}
|
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 = "";
|
var image = "alert-square-rounded.png";
|
bool isOk = true;
|
if (string.IsNullOrEmpty(mTextBoxEdit速度系数.Text) || mTextBoxEdit速度系数.Text == "请输入速度系数" || double.Parse(mTextBoxEdit速度系数.Text) == 0)
|
{
|
isOk = false;
|
error = "请输入必填项!";
|
mTextBoxEdit速度系数.TrailingIcon = GlobalResource.GetTipTrailingIcon();
|
skyLabel速度系数.Visible = true;
|
}
|
if (string.IsNullOrEmpty(mTextBoxEdit基圆直径.Text) || mTextBoxEdit基圆直径.Text == "请输入基圆直径" || double.Parse(mTextBoxEdit基圆直径.Text) == 0)
|
{
|
isOk = false;
|
error = "请输入必填项!";
|
mTextBoxEdit基圆直径.TrailingIcon = GlobalResource.GetTipTrailingIcon();
|
skyLabel基圆直径.Visible = true;
|
}
|
if (string.IsNullOrEmpty(mTextBoxEdit基圆宽度.Text) || mTextBoxEdit基圆宽度.Text == "请输入基圆宽度" || double.Parse(mTextBoxEdit基圆宽度.Text) == 0)
|
{
|
isOk = false;
|
error = "请输入必填项!";
|
mTextBoxEdit基圆宽度.TrailingIcon = GlobalResource.GetTipTrailingIcon();
|
skyLabel基圆宽度.Visible = true;
|
}
|
if (string.IsNullOrEmpty(mTextBoxEdit隔舌安放角.Text) || 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速度系数.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 = "请输入速度系数";
|
}
|
}
|
|
private void mTextBoxEdit速度系数_Enter(object sender, EventArgs e)
|
{
|
skyLabel速度系数.Visible = false;
|
mTextBoxEdit速度系数.TrailingIcon = null;
|
if (mTextBoxEdit速度系数.Text == "请输入速度系数")
|
{
|
mTextBoxEdit速度系数.Text = "";
|
}
|
}
|
|
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基圆直径.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 = "请输入基圆直径";
|
}
|
}
|
|
private void mTextBoxEdit基圆直径_Enter(object sender, EventArgs e)
|
{
|
skyLabel基圆直径.Visible = false;
|
mTextBoxEdit基圆直径.TrailingIcon = null;
|
if (mTextBoxEdit基圆直径.Text == "请输入基圆直径")
|
{
|
mTextBoxEdit基圆直径.Text = "";
|
}
|
}
|
|
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基圆宽度.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 = "请输入基圆宽度";
|
}
|
else
|
{
|
if (mTextBoxEdit基圆宽度.Text != "请输入基圆宽度" && (Convert.ToDouble(mTextBoxEdit基圆宽度.Text) > Convert.ToDouble(metroTrackBar基圆宽度.Maximum) / 100 || Convert.ToDouble(mTextBoxEdit基圆宽度.Text) < Convert.ToDouble(metroTrackBar基圆宽度.Minimum) / 100))
|
{
|
mTextBoxEdit基圆宽度.Text = "请输入基圆宽度";
|
MessageBox.Show("请重新输入基圆宽度!请参考给出的范围值!");
|
}
|
}
|
|
}
|
|
private void mTextBoxEdit基圆宽度_Enter(object sender, EventArgs e)
|
{
|
skyLabel基圆宽度.Visible = false;
|
mTextBoxEdit基圆宽度.TrailingIcon = null;
|
if (mTextBoxEdit基圆宽度.Text == "请输入基圆宽度")
|
{
|
mTextBoxEdit基圆宽度.Text = "";
|
}
|
}
|
|
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隔舌安放角.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 = "请输入隔舌安放角";
|
}
|
else
|
{
|
if (mTextBoxEdit隔舌安放角.Text != "请输入隔舌安放角" && (Convert.ToDouble(mTextBoxEdit隔舌安放角.Text) > Convert.ToDouble(metroTrackBar隔舌安放角.Maximum) / 100 || Convert.ToDouble(mTextBoxEdit隔舌安放角.Text) < Convert.ToDouble(metroTrackBar隔舌安放角.Minimum) / 100))
|
{
|
mTextBoxEdit隔舌安放角.Text = "请输入隔舌安放角";
|
MessageBox.Show("请重新输入隔舌安放角!请参考给出的范围值!");
|
}
|
}
|
|
}
|
|
private void mTextBoxEdit隔舌安放角_Enter(object sender, EventArgs e)
|
{
|
skyLabel隔舌安放角.Visible = false;
|
mTextBoxEdit隔舌安放角.TrailingIcon = null;
|
if (mTextBoxEdit隔舌安放角.Text == "请输入隔舌安放角")
|
{
|
mTextBoxEdit隔舌安放角.Text = "";
|
}
|
}
|
|
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;
|
}
|
}
|
}
|