1.摘要
实现TextBox文本框输入格式限制主要思路:
textBox有个KeyPress事件,事件是在控件具有聚焦点并且用户按下并释放某个键后发生。
通过这个事件,可以通过ASCII码来与键盘输入的按钮进行判断处理,然后通过事件Handled手柄处理即可。
2.应用
比如限制某个文本输入只能是数字,有小数点和负数。数字对应ASCII的十进制位置是48-57,”-“对应的是45,”.“对应的是46,还要有删除的功能就需要退格键,对应的是8。
可以先限制输入的只能是45-57的按钮以及8退格键的按钮,然后排除47,然后再排除小数点不能在第一位,负号只能在首位,当负号存在,后面不能直接小数点。
3.代码
private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// 允许 数字,小数点,负号,/,退格键;
if ((e.KeyChar < 45 || e.KeyChar > 57) && e.KeyChar != 8)
{
e.Handled = true;
}
//负号只能在第一位
if (e.KeyChar==45)
{
if ((sender as TextBox).Text!="")
{
e.Handled = true;
}
}
//“/”去掉
if (e.KeyChar==47)
{
e.Handled = true;
}
//小数点不能在首位
if (e.KeyChar == 46 && (sender as TextBox).Text == "")
{
e.Handled = true;
}
//第一位是负号,第二位不能为小数点
if (e.KeyChar ==46&& (sender as TextBox).Text == "-")
{
e.Handled = true;
}
}
多个文本框公用功能时,可以直接封装成函数,然后对应文本框的KeyPress事件调用封装的函数,或者直接在对应文本框的KeyPress事件那里直接调用写好功能的TextBox的KeyPress即可。