C#机房重构优化—限制输入

【前言】

机房重构终于做完了,整个拖了一个自考+软考,下面总结一下机房重构优化的限制输入问题。

【内容】

1.只能输入数字、退格

///<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;
    }
}

2.只能输入汉字、tap/回车、退格

using System.Text.RegularExpressions;

///<summary>
///只能输入汉字、tap/回车、删除
///</summary>
///<param name="text"></param>
public void InputCharacter(KeyPressEventArgs e)
{
    //使用正则表达式限制输入汉字
    Regex rg = new Regex("^[\u4e00-\u9fa5]$");  //正则表达式
    if (!rg.IsMatch(e.KeyChar.ToString()) && e.KeyChar != '\b') //'\b'是退格键
    {
        e.Handled = true;
        MessageBox.Show("请输入汉字", "温馨提示");
        return;
    }
}

3.只能输入数字和汉字

using System.Text.RegularExpressions;

/// <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;
    }
}

4.只能输入字母和数字

///<summary>
///只能输入字母和数字
///</summary>
///<param name="text"></param>
public void Inputcn(KeyPressEventArgs e)
{
    if ((e.KeyChar >= 'a' && e.KeyChar <= 'z') || (e.KeyChar >= 'A' && e.KeyChar <= 'Z')
            || (e.KeyChar >= '0' && e.KeyChar <= '9') || (e.KeyChar == 8))
    {
        e.Handled = false;
    }
    else
    {
        e.Handled = true;
        MessageBox.Show("密码只能是字母或者数字","温馨提示");
    }
}

5.客户端进行调用

private void txtUserID_KeyPress(object sender, KeyPressEventArgs e)
{
    //实例化
    UI.LimitInput limit = new UI.LimitInput();

    //传值
    limit.Text = e;

    //调用方法判断是否满足条件-只能输入数字
    limit.Input(e);
}

【总结】

这样做的好处是提高了代码的复用,但是用户体验效果不是很好,提示框有点多。关于既能提高代码复用率,又能用户体验效果好,大家有什么好的解决办法吗?欢迎评论!

发布了113 篇原创文章 · 获赞 25 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/frj0260/article/details/103325703