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;
}
}
}