- 建立一个限制输入的类
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); //调用方法判断是否满足条件-只能输入汉字和数字
}