using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using System.Globalization; using System; using System.Web.UI; namespace ETD.Common { ///EnterRestriction _er = new EnterRestriction(txtContent); //_er.ContentJudgeE = ContentJudgeEnum.None; /// /// 用于限制控件输入 /// public class EnterRestriction { public ContentJudgeEnum ContentJudgeE { get; set; } public string Expression { get; set; } private System.Windows.Forms.Control Control { get; set; } private static Color _color; public bool IsPass; public EnterRestriction(Control control, ContentJudgeEnum cje=ContentJudgeEnum.JudgeIsChinese) {       /// Try ContentJudgeE = cje; Control = control; control.KeyPress += control_KeyPress; control.Leave+=control_Leave; } void control_Leave(object sender, EventArgs e) {       /// Try var content = Control.Text; if (content.Trim() == string.Empty||ContentJudgeE == ContentJudgeEnum.None) return; if (_color.IsEmpty) { _color = Control.BackColor; } else { Control.BackColor = _color; } IsPass = true; switch (ContentJudgeE) { case ContentJudgeEnum.JudgeDiy: if (ContentJudge.JudgeDiy(content, Expression)) return; break; case ContentJudgeEnum.JudgeIsIp: if (ContentJudge.JudgeIsIp(content)) return; break; case ContentJudgeEnum.JudgeIsMailAddress: if (ContentJudge.JudgeIsMailAddress(content)) return; break; case ContentJudgeEnum.JudgeIsMinusDecimal: if (ContentJudge.JudgeIsMinusDecimal(content)) return; break; case ContentJudgeEnum.JudgeIsMinusInt: if (ContentJudge.JudgeIsMinusInt(content)) return; break; case ContentJudgeEnum.JudgeIsMobilePhoneNumber: if (ContentJudge.JudgeIsMobilePhoneNumber(content)) return; break; case ContentJudgeEnum.JudgeIsCapital: if (ContentJudge.JudgeIsCapital(content)) return; break; case ContentJudgeEnum.JudgeIsChinese: if (ContentJudge.JudgeIsChinese(content)) return; break; case ContentJudgeEnum.JudgeIsLetter: if (ContentJudge.JudgeIsLetter(content)) return; break; case ContentJudgeEnum.JudgeIsLetterAndChinese: if (ContentJudge.JudgeIsLetterAndChinese(content)) return; break; case ContentJudgeEnum.JudgeIsLetterAndNumber: if (ContentJudge.JudgeIsLetterAndNumber(content)) return; break; case ContentJudgeEnum.JudgeIsNumberAndChinese: if (ContentJudge.JudgeIsNumberAndChinese(content)) return; break; case ContentJudgeEnum.JudgeIsPhoneNumber: if (ContentJudge.JudgeIsPhoneNumber(content)) return; break; case ContentJudgeEnum.JudgeIsPositiveDecimal: if (ContentJudge.JudgeIsPositiveDecimal(content)) return; break; case ContentJudgeEnum.JudgeIsPositiveInt: if (ContentJudge.JudgeIsPositiveInt(content)) return; break; case ContentJudgeEnum.JudgeIsSmallLetter: if (ContentJudge.JudgeIsSmallLetter(content)) return; break; } Control.BackColor = Color.Aquamarine; IsPass = false; } void control_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Back || e.KeyChar == (char)Keys.Enter) { return; } switch (ContentJudgeE) { case ContentJudgeEnum.JudgeIsCapital: e.Handled = !ContentJudge.JudgeIsCapital(e.KeyChar.ToString(CultureInfo.InvariantCulture)); break; case ContentJudgeEnum.JudgeIsChinese: e.Handled = !ContentJudge.JudgeIsChinese(e.KeyChar.ToString(CultureInfo.InvariantCulture)); break; case ContentJudgeEnum.JudgeIsLetter: e.Handled = !ContentJudge.JudgeIsLetter(e.KeyChar.ToString(CultureInfo.InvariantCulture)); break; case ContentJudgeEnum.JudgeIsLetterAndChinese: e.Handled = !ContentJudge.JudgeIsLetterAndChinese(e.KeyChar.ToString(CultureInfo.InvariantCulture)); break; case ContentJudgeEnum.JudgeIsLetterAndNumber: e.Handled = !ContentJudge.JudgeIsLetterAndNumber(e.KeyChar.ToString(CultureInfo.InvariantCulture)); break; case ContentJudgeEnum.JudgeIsNumberAndChinese: e.Handled = !ContentJudge.JudgeIsNumberAndChinese(e.KeyChar.ToString(CultureInfo.InvariantCulture)); break; case ContentJudgeEnum.JudgeIsPositiveDecimal: e.Handled = !ContentJudge.JudgeIsPositiveDecimal(e.KeyChar.ToString(CultureInfo.InvariantCulture)); break; case ContentJudgeEnum.JudgeIsPositiveInt: e.Handled = !ContentJudge.JudgeIsPositiveInt(e.KeyChar.ToString(CultureInfo.InvariantCulture)); break; case ContentJudgeEnum.JudgeIsSmallLetter: e.Handled = !ContentJudge.JudgeIsSmallLetter(e.KeyChar.ToString(CultureInfo.InvariantCulture)); break; } } } }