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(); Tips(); addiamge(); } private string ResourcesPath = @"Data\MainForm\Icons"; public bool Verify(out string error) { error = ""; var image = "alert-square-rounded.png"; if (string.IsNullOrEmpty(mTextBoxEdit速度系数.Text) || mTextBoxEdit速度系数.Text == "请输入速度系数" || string.IsNullOrEmpty(mTextBoxEdit基圆直径.Text) || mTextBoxEdit基圆直径.Text == "请输入基圆直径" || string.IsNullOrEmpty(mTextBoxEdit基圆宽度.Text) || mTextBoxEdit基圆宽度.Text == "请输入基圆宽度" || string.IsNullOrEmpty(mTextBoxEdit隔舌安放角.Text) || mTextBoxEdit隔舌安放角.Text == "请输入隔舌安放角") { if (string.IsNullOrEmpty(mTextBoxEdit速度系数.Text) || mTextBoxEdit速度系数.Text == "请输入速度系数") { error = "请输入必填项!"; mTextBoxEdit速度系数.TrailingIcon = Icon(ResourcesPath, image); skyLabel速度系数.Visible = true; } if (string.IsNullOrEmpty(mTextBoxEdit基圆直径.Text) || mTextBoxEdit基圆直径.Text == "请输入基圆直径") { error = "请输入必填项!"; mTextBoxEdit基圆直径.TrailingIcon = Icon(ResourcesPath, image); skyLabel基圆直径.Visible = true; } if (string.IsNullOrEmpty(mTextBoxEdit基圆宽度.Text) || mTextBoxEdit基圆宽度.Text == "请输入基圆宽度") { error = "请输入必填项!"; mTextBoxEdit基圆宽度.TrailingIcon = Icon(ResourcesPath, image); skyLabel基圆宽度.Visible = true; } if (string.IsNullOrEmpty(mTextBoxEdit隔舌安放角.Text) || mTextBoxEdit隔舌安放角.Text == "请输入隔舌安放角") { error = "请输入必填项!"; mTextBoxEdit隔舌安放角.TrailingIcon = Icon(ResourcesPath, image); skyLabel隔舌安放角.Visible = true; } return false; } return true; } private void addiamge() { //输入框前缀图片 var image = "north-star.png"; mTextBoxEdit速度系数.LeadingIcon = Icon(ResourcesPath, image); mTextBoxEdit基圆直径.LeadingIcon = Icon(ResourcesPath, image); mTextBoxEdit基圆宽度.LeadingIcon = Icon(ResourcesPath, image); mTextBoxEdit隔舌安放角.LeadingIcon = Icon(ResourcesPath, image); } private void Tips() { 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)) { 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)) { 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)) { 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)) { 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; } /// /// 图片 /// /// 文件夹路径(编译路径下的) /// 文件名 /// private System.Drawing.Image Icon(string path, string filename) { System.Drawing.Image thumbnail = AssembledPath(path, filename).GetThumbnailImage(20, 20, () => false, IntPtr.Zero); return thumbnail; } /// /// 路径、文件名拼接 /// /// 路径 /// 文件名 /// private System.Drawing.Image AssembledPath(string path, string filename) { if (path == null && filename == null) { return null; } string fullPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, path, filename); System.Drawing.Image image = System.Drawing.Image.FromFile(fullPath); return image; } } }