mirror of
https://github.com/eggplantlwj/VisionEdit.git
synced 2026-03-24 08:46:35 +08:00
172 lines
7.0 KiB
C#
172 lines
7.0 KiB
C#
|
|
// ***********************************************************************
|
|||
|
|
// Assembly : HZH_Controls
|
|||
|
|
// Created : 08-08-2019
|
|||
|
|
//
|
|||
|
|
// ***********************************************************************
|
|||
|
|
// <copyright file="FrmInputs.cs">
|
|||
|
|
// Copyright by Huang Zhenghui(黄正辉) All, QQ group:568015492 QQ:623128629 Email:623128629@qq.com
|
|||
|
|
// </copyright>
|
|||
|
|
//
|
|||
|
|
// 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
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// Class FrmInputs.
|
|||
|
|
/// Implements the <see cref="HZH_Controls.Forms.FrmWithOKCancel1" />
|
|||
|
|
/// </summary>
|
|||
|
|
/// <seealso cref="HZH_Controls.Forms.FrmWithOKCancel1" />
|
|||
|
|
public partial class FrmInputs : FrmWithOKCancel1
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// Gets the values.
|
|||
|
|
/// </summary>
|
|||
|
|
/// <value>The values.</value>
|
|||
|
|
public string[] Values { get; private set; }
|
|||
|
|
/// <summary>
|
|||
|
|
/// The m mast inputs
|
|||
|
|
/// </summary>
|
|||
|
|
private Dictionary<int, string> m_mastInputs = new Dictionary<int, string>();
|
|||
|
|
#region 构造函数
|
|||
|
|
/// <summary>
|
|||
|
|
/// 功能描述:构造函数
|
|||
|
|
/// 作 者:HZH
|
|||
|
|
/// 创建日期:2019-08-05 10:57:26
|
|||
|
|
/// 任务编号:POS
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="strTitle">窗体标题</param>
|
|||
|
|
/// <param name="inPutLabels">The in put labels.</param>
|
|||
|
|
/// <param name="inTypes">输入项对应输入类型,key:输入项名称,如不设置默认不控制输入</param>
|
|||
|
|
/// <param name="regexs">输入项对应正则规则,当imTypes=Regex时有效,key:输入项名称,如不设置默认不控制输入</param>
|
|||
|
|
/// <param name="keyBoards">文本框键盘,key:输入项名称,如不设置默认英文键盘</param>
|
|||
|
|
/// <param name="mastInputs">必填输入项名称</param>
|
|||
|
|
/// <param name="defaultValues">输入项默认值,key:输入项名称</param>
|
|||
|
|
/// <exception cref="System.Exception">输入数量不能为空</exception>
|
|||
|
|
/// <exception cref="Exception">输入数量不能为空</exception>
|
|||
|
|
public FrmInputs(
|
|||
|
|
string strTitle,
|
|||
|
|
string[] inPutLabels,
|
|||
|
|
Dictionary<string, TextInputType> inTypes = null,
|
|||
|
|
Dictionary<string, string> regexs = null,
|
|||
|
|
Dictionary<string, HZH_Controls.Controls.KeyBoardType> keyBoards = null,
|
|||
|
|
List<string> mastInputs = null,
|
|||
|
|
Dictionary<string, string> 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
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Does the enter.
|
|||
|
|
/// </summary>
|
|||
|
|
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();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|