1.正整数
//可以输入正整数
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (((int)e.KeyChar < 48 || (int)e.KeyChar > 57) && (int)e.KeyChar != 8) { e.Handled = true; }
}
2.整数
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (((int)e.KeyChar < 48 || (int)e.KeyChar > 57) && (int)e.KeyChar != 8 && (int)e.KeyChar != 45) { e.Handled = true; }
if ((int)e.KeyChar == 45)
{
//如果选中文本框中的所有文本,则可以输入负号
if (textBox.SelectionLength == textBox.TextLength) { }
else
{
//如果文本框的第一个字符被选中,则可以输入负号
if (textBox.SelectionStart == 0) { }
else
{
if (textBox.TextLength != 0)
{
e.Handled = true;
}
}
}
}
}
3.超出范围限制自动退格
可以用两种方法触发:
1.textBox_TextChange:每输入一个字符,都会验证
2.textBox_KeyDown:当摁下某个键时,验证(下例是回车键)
//可以输入小于100的整数
private void textBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (textBox.Text != "" && textBox.Text != "-")
{
if (Convert.ToInt32(textBox.Text) < 100)
{
MessageBox.Show("请输入小于100的整数", "提示");
string str = textBox_ControlRobot_TravelAngleControl_TravelDistance.Text;
str = str.Substring(0, str.Length - 1);
textBox.Text = str;
textBox.SelectionStart = textBox.TextLength;
}
}
}
}
4.只能输入汉字
输入其它字符没有反应
private void txtRealName_KeyPress(object sender, KeyPressEventArgs e)
{
Regex rg = new Regex("^[\u4e00-\u9fa5]$");
if (!rg.IsMatch(e.KeyChar.ToString()) && e.KeyChar != '\b')
{
e.Handled = true;
}
}
5.只能输入字母和数字
private void txtPass_KeyPress(object sender, 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;
}
}
6.不能少于8位
private void txtPass_Validating(object sender, CancelEventArgs e)
{
if (txtPass.TextLength < 8)
{
MessageBox.Show("密码不能小于8位", "提示");
return;
}
}