using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace MeterModuleLibrary { public delegate void EventSetNumKey(object o,string s); public partial class ucNumberKey : UserControl { public ucNumberKey() { InitializeComponent(); } /// /// 默认控制进行数字验证 /// public bool bControl = true; public string strValue = ""; /// /// 主界面调用填充数值 /// public event EventSetNumKey evoice; public void setTxtNum(string sValue) { if (!string.IsNullOrEmpty(sValue)) { Button btn = new Button(); btn.Text = sValue; setTxtValue(btn, sValue.Length - 1); } } private void btnValue_Click(object sender, EventArgs e) { Button btn = (Button)sender; if (bControl) { switch (btn.Name) { case "btnSpot": if (txtValue.Text.Trim() != "" && !txtValue.Text.Trim().Contains(".")) { setTxtValue(btn, 0); } break; case "btn00": if (txtValue.Text.Trim() != "" && (txtValue.Text.Trim().Substring(0, 1) != "0" || txtValue.Text.Trim().Contains("."))) { setTxtValue(btn, 1); } break; case "btn0": if (txtValue.Text.Trim() == "" || txtValue.Text.Trim().Contains(".") || (txtValue.Text.Trim() != "" && txtValue.Text.Substring(0, 1) != "0")) { setTxtValue(btn, 0); } break; default: setTxtValue(btn, 0); break; } } else { int m = 0; if (btn.Name == "btn00") { m = 1; } setTxtValue(btn, m); } } private void setTxtValue(Button btn, int m) { int i = txtValue.SelectionStart; txtValue.Focus(); txtValue.Text = txtValue.Text.Trim() + btn.Text; txtValue.Select(++i + m, 0); } private void btnClean_Click(object sender, EventArgs e) { txtValue.Text = ""; } private void btnLeft_Click(object sender, EventArgs e) { int i = txtValue.SelectionStart; txtValue.Focus(); if (i > 0) txtValue.Select(--i, 0); } private void btnRight_Click(object sender, EventArgs e) { int i = txtValue.SelectionStart; txtValue.Focus(); if (i < txtValue.Text.Trim().Length) txtValue.Select(++i, 0); } private void btnBack_Click(object sender, EventArgs e) { int i = txtValue.SelectionStart; txtValue.Focus(); if (i > 0) { txtValue.Text = txtValue.Text.Trim().Substring(0, i - 1) + txtValue.Text.Trim().Substring(i); txtValue.Select(--i, 0); } } private void btnSubmit_Click(object sender, EventArgs e) { strValue = txtValue.Text.Trim(); txtValue.Text = ""; evoice(this, strValue); //此处还需调用加载该用户控件的界面关闭方法 } } }