在textbox中只能输入一次逗号怎么写
用keypress解决
你可以在keypress事件中判断文本框的值,如果不符合你的要求(可以正则匹配或者其他方式验证),那么你可以用一个全局string替换掉当前的内容,反之将文本框的值保存到全局string
if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 45)
e.Handled = true;
//用这句话,可以查看所有的按键数值
Console.WriteLine("按键<{0}>KeyChar数值:{1}", e.KeyChar,(int)e.KeyChar);
配上 部分KeyChar数值;其他的如果关心,可以通过上面的方法查看
按键<退格键>KeyChar数值:8
按键<删除键>KeyChar数值:NULL
按键<回车>KeyChar数值:13
//数字
按键<0>KeyChar数值:48
按键<1>KeyChar数值:49
按键<2>KeyChar数值:50
按键<3>KeyChar数值:51
按键<4>KeyChar数值:52
按键<5>KeyChar数值:53
按键<6>KeyChar数值:54
按键<7>KeyChar数值:55
按键<8>KeyChar数值:56
按键<9>KeyChar数值:57
按键<.>KeyChar数值:46
//小写
按键<a>KeyChar数值:97
按键<b>KeyChar数值:98
按键<c>KeyChar数值:99
......
按键<x>KeyChar数值:120
按键<y>KeyChar数值:121
按键<z>KeyChar数值:122
//大写
按键<A>KeyChar数值:65
按键<B>KeyChar数值:66
按键<C>KeyChar数值:67
......
按键<X>KeyChar数值:88
按键<Y>KeyChar数值:89
按键<Z>KeyChar数值:90
//仅允许输入16进制的字符
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
//32 Space,8 Back,13 Enter,20 Capital,46 Delete,16 ShiftKey
if ((e.KeyChar >= 'a' && e.KeyChar <= 'f')
|| (e.KeyChar >= 'A' && e.KeyChar <= 'F')
|| (e.KeyChar >= '0' && e.KeyChar <= '9')
|| e.KeyChar == 32 || e.KeyChar == 8 || e.KeyChar == 16)
{
e.Handled = false;//允许字符键入
}
else
{
e.Handled = true;//阻拦字符键入
}
}