123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- 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;
- /// <summary>
- /// 用于限制控件输入
- /// </summary>
- 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;
- }
- }
- }
- }
|