// *********************************************************************** // Assembly : HZH_Controls // Created : 08-08-2019 // // *********************************************************************** // // Copyright by Huang Zhenghui(黄正辉) All, QQ group:568015492 QQ:623128629 Email:623128629@qq.com // // // Blog: https://www.cnblogs.com/bfyx // GitHub:https://github.com/kwwwvagaa/NetWinformControl // gitee:https://gitee.com/kwwwvagaa/net_winform_custom_control.git // // If you use this code, please keep this note. // *********************************************************************** using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using HZH_Controls.Controls; namespace HZH_Controls.Forms { /// /// Class FrmInputs. /// Implements the /// /// public partial class FrmInputs : FrmWithOKCancel1 { /// /// Gets the values. /// /// The values. public string[] Values { get; private set; } /// /// The m mast inputs /// private Dictionary m_mastInputs = new Dictionary(); #region 构造函数 /// /// 功能描述:构造函数 /// 作  者:HZH /// 创建日期:2019-08-05 10:57:26 /// 任务编号:POS /// /// 窗体标题 /// The in put labels. /// 输入项对应输入类型,key:输入项名称,如不设置默认不控制输入 /// 输入项对应正则规则,当imTypes=Regex时有效,key:输入项名称,如不设置默认不控制输入 /// 文本框键盘,key:输入项名称,如不设置默认英文键盘 /// 必填输入项名称 /// 输入项默认值,key:输入项名称 /// 输入数量不能为空 /// 输入数量不能为空 public FrmInputs( string strTitle, string[] inPutLabels, Dictionary inTypes = null, Dictionary regexs = null, Dictionary keyBoards = null, List mastInputs = null, Dictionary defaultValues = null) { InitializeComponent(); this.Title = strTitle; if (inPutLabels.Length <= 0) { throw new Exception("输入数量不能为空"); } try { Values = new string[inPutLabels.Length]; HZH_Controls.ControlHelper.FreezeControl(this, true); for (int i = inPutLabels.Length - 1; i >= 0; i--) { Panel p = new Panel(); p.Dock = DockStyle.Top; p.Height = 62; p.Padding = new Padding(10); HZH_Controls.Controls.UCTextBoxEx txt = new Controls.UCTextBoxEx(); txt.Dock = DockStyle.Fill; txt.IsShowKeyboard = true; txt.IsShowClearBtn = true; txt.Name = "txt_" + i; txt.TabIndex = i; if (inTypes != null && inTypes.ContainsKey(inPutLabels[i])) { txt.InputType = inTypes[inPutLabels[i]]; if (txt.InputType == TextInputType.Regex && regexs != null && regexs.ContainsKey(inPutLabels[i])) txt.RegexPattern = regexs[inPutLabels[i]]; } if (keyBoards != null && keyBoards.ContainsKey(inPutLabels[i])) txt.KeyBoardType = keyBoards[inPutLabels[i]]; if (mastInputs != null && mastInputs.Contains(inPutLabels[i])) { m_mastInputs[i] = inPutLabels[i]; } if (defaultValues != null && defaultValues.ContainsKey(inPutLabels[i])) txt.InputText = defaultValues[inPutLabels[i]]; p.Controls.Add(txt); Label lbl = new Label(); lbl.Text = inPutLabels[i]; lbl.Padding = new System.Windows.Forms.Padding(0, 0, 5, 0); lbl.TextAlign = ContentAlignment.MiddleRight; lbl.AutoSize = false; lbl.Width = 120; lbl.Dock = DockStyle.Left; lbl.Font = new System.Drawing.Font("微软雅黑", 12); p.Controls.Add(lbl); Label lblT = new Label(); if (mastInputs != null && mastInputs.Contains(inPutLabels[i])) { lblT.Text = "*"; } else { lblT.Text = ""; } lblT.AutoSize = false; lblT.TextAlign = ContentAlignment.MiddleLeft; lblT.Width = 25; lblT.Dock = DockStyle.Right; lblT.Font = new System.Drawing.Font("微软雅黑", 12); lblT.ForeColor = Color.Red; p.Controls.Add(lblT); this.panel3.Controls.Add(p); this.ActiveControl = txt; } this.Height = 124 + inPutLabels.Length * 62; } finally { HZH_Controls.ControlHelper.FreezeControl(this, false); } } #endregion /// /// Does the enter. /// protected override void DoEnter() { for (int i = 0; i < Values.Length; i++) { var cs = this.panel3.Controls.Find("txt_" + i, true); if (cs.Length > 0) { var txt = cs[0] as HZH_Controls.Controls.UCTextBoxEx; Values[i] = txt.InputText; if (m_mastInputs.ContainsKey(i) && string.IsNullOrWhiteSpace(txt.InputText)) { HZH_Controls.Forms.FrmTips.ShowTipsInfo(this, "[" + m_mastInputs[i] + "]必须输入。"); this.ActiveControl = txt.txtInput; return; } } } base.DoEnter(); } } }