C#如何让TEXTBOX只能输入英文状态下的数字并且限制位数

来源:百度知道 编辑:UC知道 时间:2024/06/04 17:35:43
还有THIS是什么什么意思

限制长度:设置maxlength属性
屏蔽非数字键输入:添加keypress事件
private void textBox1_KeyPress(object sender, KeyPressEventArgs e){
e.Handled = !(Char.IsNumber(e.KeyChar) || e.KeyChar == '\b');
}
替换全角(中文)数字字符为半角(英文)字符:添加textchange事件
private void textBox1_TextChanged(object sender, EventArgs e){
for (int i=0;i< textBox1.Text.Length; ++i)
if (textBox1.Text[i] >= '0' && textBox1.Text[i] <= '9')
textBox1.Text = textBox1.Text.Replace(textBox1.Text[i], (char)(textBox1.Text[i] - '0' + '0'));
}

门道我说不出多少,办法也比较笨,看看是否符合要求

正则表达式
[0-9]{0,10}
这能输入0到9 的半角数字 ,位数为0到10位
this 表示引用类的当前实例。

通过判断输入字符的长度和ASC码来判断,在TextChanged事件中检查输入字符的ASC码是否是数字对应的,如果非这十个数字的话就对话框提示或者直接要求重新输入得了。不过VS有全角半角的BUG,要注意。this就是这个窗体的意思,相当于VB中的Me.你也可以理解为你的窗体。不写也行的。