机房重构-输入限制

  • 建立一个限制输入的类
    public class RestrictedInput
    {
        private KeyPressEventArgs text;
        public KeyPressEventArgs Text
        {
            get { return text; }

            set { text = value; }
        }
    }

 

  • 根据不同的需要在类中添加不同的限制调用的方法
        /// <summary>
        /// 限制输入只能输入数字、退格
        /// </summary>
        /// <param name="text"></param>
        public void Input(KeyPressEventArgs text)
        {
            if (!(char.IsNumber(text.KeyChar)) && text.KeyChar != (char)8)
            {
                text.Handled = true;    //阻止从键盘输入键
                MessageBox.Show("请输入数字", "提示");
                return;
            }
        }
        /// <summary>
        /// 限制只能输入汉字、tap\回车、删除
        /// </summary>
        /// <param name="text"></param>
        public void InputCharacter(KeyPressEventArgs e)
        {
            //使用正则表达式限制输入汉字--需要引用using System.Text.RegularExpressions;
            Regex rg = new Regex("^[\u4e00-\u9fa5]$");  //正则表达式
            if (!rg.IsMatch(e.KeyChar.ToString()) && e.KeyChar != '\b') //'\b'是退格键
            {
                e.Handled = true;
                MessageBox.Show("请输入汉字", "提示");
                return;
            }
        }
        /// <summary>
        /// 限制输入汉字和数字
        /// </summary>
        /// <param name="e"></param>
        public void Inputtwo(KeyPressEventArgs e)
        {
            Regex rg = new Regex("^[\u4e00-\u9fa5]$");  //正则表达式
            if (!rg.IsMatch(e.KeyChar.ToString()) && e.KeyChar != '\b' && !(char.IsNumber(text.KeyChar)) && text.KeyChar != (char)8) //'\b'是退格键
            {
                e.Handled = true;
                MessageBox.Show("只能输入汉字和数字", "提示");
                return;
            }
        }
  • 在需要限制窗体控件中添加调用代码

 

如:限制输入只能是汉字和数字,则在控件的KeyPress事件中调用该限制类即可

        private void txtID_KeyPress(object sender, KeyPressEventArgs e)
        {
            Login.UI.RestrictedInput lim = new Login.UI.RestrictedInput();  //实例化限制类
            lim.Text = e;   //传值
            lim.Inputtwo(e);    //调用方法判断是否满足条件-只能输入汉字和数字
        }

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 25
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值