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 partial class ucNumberKey2 : UserControl { public ucNumberKey2() { InitializeComponent(); } /// /// 默认控制进行数字验证 /// public bool bControl = true; public string strValue = ""; /// /// 主界面调用填充数值 /// public event EventSetNumKey evoice; private void btnValue_Click(object sender, EventArgs e) { Button btn = (Button)sender; int m = 0; if (txtValue1.Text.Length < 3) { iFocus = 1; setTxtValue1(btn, m); } else if (txtValue2.Text.Length < 3) { iFocus = 2; setTxtValue2(btn, m); } else if (txtValue3.Text.Length < 3) { iFocus = 3; setTxtValue3(btn, m); } } private void setTxtValue1(Button btn, int m) { int i = txtValue1.SelectionStart; txtValue1.Focus(); txtValue1.Text = txtValue1.Text.Trim() + btn.Text; txtValue1.Select(++i + m, 0); } private void setTxtValue2(Button btn, int m) { int i = txtValue2.SelectionStart; txtValue2.Focus(); txtValue2.Text = txtValue2.Text.Trim() + btn.Text; txtValue2.Select(++i + m, 0); } private void setTxtValue3(Button btn, int m) { int i = txtValue1.SelectionStart; txtValue3.Focus(); txtValue3.Text = txtValue3.Text.Trim() + btn.Text; txtValue3.Select(++i + m, 0); } private void btnClean_Click(object sender, EventArgs e) { txtValue1.Text = ""; txtValue2.Text = ""; txtValue3.Text = ""; } int iFocus = 1; private void btnLeft_Click(object sender, EventArgs e) { switch (iFocus) { case 1: txtValue1.Focus(); break; case 2: txtValue2.Focus(); break; case 3: txtValue3.Focus(); break; } if (txtValue3.Focused && txtValue3.Text != "") { int i = txtValue3.SelectionStart; if (i > 0) { iFocus = 3; txtValue3.Focus(); txtValue3.Select(--i, 0); } else { iFocus = 2; txtValue2.Focus(); txtValue2.Select(3, 0); } } else if (txtValue2.Focused && txtValue2.Text != "") { int i = txtValue2.SelectionStart; if (i > 0) { iFocus = 2; txtValue2.Focus(); txtValue2.Select(--i, 0); } else { iFocus = 1; txtValue1.Focus(); txtValue1.Select(3, 0); } } else if (txtValue1.Focused && txtValue1.Text != "") { iFocus = 1; int i = txtValue1.SelectionStart; txtValue1.Focus(); if (i > 0) txtValue1.Select(--i, 0); } } private void btnRight_Click(object sender, EventArgs e) { switch (iFocus) { case 1: txtValue1.Focus(); break; case 2: txtValue2.Focus(); break; case 3: txtValue3.Focus(); break; } if (txtValue1.Focused && txtValue1.Text != "") { int i = txtValue1.SelectionStart; txtValue1.Focus(); if (i < txtValue1.Text.Trim().Length) { txtValue1.Select(++i, 0); } else { iFocus = 2; txtValue2.Focus(); } } else if (txtValue2.Focused && txtValue2.Text != "") { int i = txtValue2.SelectionStart; txtValue2.Focus(); if (i < txtValue2.Text.Trim().Length) { txtValue2.Select(++i, 0); } else { iFocus = 3; txtValue3.Focus(); } } else if (txtValue3.Focused && txtValue3.Text != "") { int i = txtValue3.SelectionStart; iFocus = 3; txtValue3.Focus(); if (i < txtValue3.Text.Trim().Length) { txtValue3.Select(++i, 0); } } } private void btnBack_Click(object sender, EventArgs e) { if (txtValue3.Text != "") { iFocus = 3; int i = txtValue3.SelectionStart; txtValue3.Focus(); if (i > 0) { txtValue3.Text = txtValue3.Text.Trim().Substring(0, i - 1) + txtValue3.Text.Trim().Substring(i); txtValue3.Select(--i, 0); } } else if (txtValue2.Text != "") { iFocus = 2; int i = txtValue2.SelectionStart; txtValue2.Focus(); if (i > 0) { txtValue2.Text = txtValue2.Text.Trim().Substring(0, i - 1) + txtValue2.Text.Trim().Substring(i); txtValue2.Select(--i, 0); } } else if (txtValue1.Text != "") { iFocus = 1; int i = txtValue1.SelectionStart; txtValue1.Focus(); if (i > 0) { txtValue1.Text = txtValue1.Text.Trim().Substring(0, i - 1) + txtValue1.Text.Trim().Substring(i); txtValue1.Select(--i, 0); } } } private void btnSubmit_Click(object sender, EventArgs e) { strValue = txtValue1.Text.Trim() + txtValue2.Text.Trim() + txtValue3.Text.Trim(); txtValue1.Text = ""; txtValue2.Text = ""; txtValue3.Text = ""; evoice(this, strValue); //此处还需调用加载该用户控件的界面关闭方法 } } }