机房重构-输入限制

  • 建立一个限制输入的类
    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);    //调用方法判断是否满足条件-只能输入汉字和数字
        }
发布了80 篇原创文章 · 获赞 32 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/dopdkfsds/article/details/90474787