C#中如何限制textbox中只能输入数字和字母

时间:2021-02-05 11:47:42
只知道大体思路是限制住数字和字母的值范围 让它们不可用 
大具体的实现 搞不清楚
C#中如何限制textbox中只能输入数字和字母?
请教下思路和具体的实现

21 个解决方案

#1


可以在TextChanged里判断的确

#2


在KeyPress里面写
如果不是数字或者字母的话设置 e.handle =true

#3


csdn 看到回帖有时刷不出来 汗

#4


引用 2 楼 zzyhuian06142 的回复:
在KeyPress里面写 
如果不是数字或者字母的话设置 e.handle =true

#5


          可以在TextChanged事件里判断的
 if (this.txtCD.Text.Length < 5)
            {
                foreach (char ch in this.txtCD.Text)
                {
                    if (char.IsDigit(ch))//是否为数字
                    { }
                    if (char.IsLetter(ch))//是否为字母
                    { }
                }
            }

#6


引用 2 楼 zzyhuian06142 的回复:
在KeyPress里面写 
如果不是数字或者字母的话设置 e.handle =true


但是这样不能防范用复制->粘贴过来的.
所以还是建议用TextChanged做实时判断.或在textBox失去焦点时判断一次,出错就提示

#7


引用 2 楼 zzyhuian06142 的回复:
在KeyPress里面写 
如果不是数字或者字母的话设置 e.handle =true


这个了解
我只是想知道 数字和字母的取值范围
			if ((e.KeyChar>='a'&&e.KeyChar<='z')||(e.KeyChar>='A'&&e.KeyChar<='Z'))
{
e.Handled = false;
}
              else
                                  e.Handled = true;

数字的就不清楚如何限制了

#8


使用正则表达式

#9


(int)e.KeyChar>=72 &&(int)e.KeyChar<=90好象是这个

#10


引用 6 楼 wdgphc 的回复:
引用 2 楼 zzyhuian06142 的回复:
在KeyPress里面写 
如果不是数字或者字母的话设置 e.handle =true 
 

但是这样不能防范用复制->粘贴过来的. 
所以还是建议用TextChanged做实时判断.或在textBox失去焦点时判断一次,出错就提示


可以写入keydown 限制 复制 
			if(	e.KeyCode == Keys.Down)
{
this.cboOutPutLaneCD.DroppedDown =true; 
}

#11


引用 6 楼 wdgphc 的回复:
引用 2 楼 zzyhuian06142 的回复:
在KeyPress里面写 
如果不是数字或者字母的话设置 e.handle =true 
 

但是这样不能防范用复制->粘贴过来的. 
所以还是建议用TextChanged做实时判断.或在textBox失去焦点时判断一次,出错就提示

直接再显示Ctrl +c和Ctrl + v不就可以了

#12


(int)e.KeyChar>=49 &&(int)e.KeyChar <=57

#13


function chk()
{
   if(!document.all("textbox").value.match(/^[1-9a-zA-Z]+$/))
   {
      alert("只能输入字母或数字!");
      return false;
   }
}

#14


个人感觉正则表达式很好用。数字和字母的正则表达式是:^[A-Za-z0-9]+$

#15


private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 

    e.Handled = !char.IsLetterOrDigit(e.KeyChar);

#16


用验证控件啊,控制输入类型范围什么的

#17


在验证控件里,使用正则表达式

#18


只能输入数字:"^[0-9]*$"。
只能输入n位的数字:"^\d{n}$"。
只能输入至少n位的数字:"^\d{n,}$"。
只能输入m~n位的数字:。"^\d{m,n}$"
只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
只能输入非零的正整数:"^\+?[1-9][0-9]*$"。
只能输入非零的负整数:"^\-[1-9][]0-9"*$。
只能输入长度为3的字符:"^.{3}$"。
只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。
只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。
验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。
只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"

#19


asp.net可以用验证控件结合正则表达式
winform就用maskedtextbox,他和webform中的验证控件是差不多

#20


引用 7 楼 wynlc 的回复:
引用 2 楼 zzyhuian06142 的回复:
在KeyPress里面写
如果不是数字或者字母的话设置 e.handle =true


这个了解
我只是想知道 数字和字母的取值范围
C# code
            if ((e.KeyChar>='a'&amp;&amp;e.KeyChar<='z')||(e.KeyChar>='A'&amp;&amp;e.KeyC……

但这样引用之后,在textbox里无法删除字母...求解

#21


 <input id="Number" type="text" style="width:25px" onkeyup= "value=value.replace(/[^\d]/g, ' ')   "onbeforepaste= "clipboardData.setData( 'text ',clipboardData.getData( 'text ').replace(/[^\d]/g, ' ')) " />

#1


可以在TextChanged里判断的确

#2


在KeyPress里面写
如果不是数字或者字母的话设置 e.handle =true

#3


csdn 看到回帖有时刷不出来 汗

#4


引用 2 楼 zzyhuian06142 的回复:
在KeyPress里面写 
如果不是数字或者字母的话设置 e.handle =true

#5


          可以在TextChanged事件里判断的
 if (this.txtCD.Text.Length < 5)
            {
                foreach (char ch in this.txtCD.Text)
                {
                    if (char.IsDigit(ch))//是否为数字
                    { }
                    if (char.IsLetter(ch))//是否为字母
                    { }
                }
            }

#6


引用 2 楼 zzyhuian06142 的回复:
在KeyPress里面写 
如果不是数字或者字母的话设置 e.handle =true


但是这样不能防范用复制->粘贴过来的.
所以还是建议用TextChanged做实时判断.或在textBox失去焦点时判断一次,出错就提示

#7


引用 2 楼 zzyhuian06142 的回复:
在KeyPress里面写 
如果不是数字或者字母的话设置 e.handle =true


这个了解
我只是想知道 数字和字母的取值范围
			if ((e.KeyChar>='a'&&e.KeyChar<='z')||(e.KeyChar>='A'&&e.KeyChar<='Z'))
{
e.Handled = false;
}
              else
                                  e.Handled = true;

数字的就不清楚如何限制了

#8


使用正则表达式

#9


(int)e.KeyChar>=72 &&(int)e.KeyChar<=90好象是这个

#10


引用 6 楼 wdgphc 的回复:
引用 2 楼 zzyhuian06142 的回复:
在KeyPress里面写 
如果不是数字或者字母的话设置 e.handle =true 
 

但是这样不能防范用复制->粘贴过来的. 
所以还是建议用TextChanged做实时判断.或在textBox失去焦点时判断一次,出错就提示


可以写入keydown 限制 复制 
			if(	e.KeyCode == Keys.Down)
{
this.cboOutPutLaneCD.DroppedDown =true; 
}

#11


引用 6 楼 wdgphc 的回复:
引用 2 楼 zzyhuian06142 的回复:
在KeyPress里面写 
如果不是数字或者字母的话设置 e.handle =true 
 

但是这样不能防范用复制->粘贴过来的. 
所以还是建议用TextChanged做实时判断.或在textBox失去焦点时判断一次,出错就提示

直接再显示Ctrl +c和Ctrl + v不就可以了

#12


(int)e.KeyChar>=49 &&(int)e.KeyChar <=57

#13


function chk()
{
   if(!document.all("textbox").value.match(/^[1-9a-zA-Z]+$/))
   {
      alert("只能输入字母或数字!");
      return false;
   }
}

#14


个人感觉正则表达式很好用。数字和字母的正则表达式是:^[A-Za-z0-9]+$

#15


private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 

    e.Handled = !char.IsLetterOrDigit(e.KeyChar);

#16


用验证控件啊,控制输入类型范围什么的

#17


在验证控件里,使用正则表达式

#18


只能输入数字:"^[0-9]*$"。
只能输入n位的数字:"^\d{n}$"。
只能输入至少n位的数字:"^\d{n,}$"。
只能输入m~n位的数字:。"^\d{m,n}$"
只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
只能输入非零的正整数:"^\+?[1-9][0-9]*$"。
只能输入非零的负整数:"^\-[1-9][]0-9"*$。
只能输入长度为3的字符:"^.{3}$"。
只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。
只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。
验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。
只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"

#19


asp.net可以用验证控件结合正则表达式
winform就用maskedtextbox,他和webform中的验证控件是差不多

#20


引用 7 楼 wynlc 的回复:
引用 2 楼 zzyhuian06142 的回复:
在KeyPress里面写
如果不是数字或者字母的话设置 e.handle =true


这个了解
我只是想知道 数字和字母的取值范围
C# code
            if ((e.KeyChar>='a'&amp;&amp;e.KeyChar<='z')||(e.KeyChar>='A'&amp;&amp;e.KeyC……

但这样引用之后,在textbox里无法删除字母...求解

#21


 <input id="Number" type="text" style="width:25px" onkeyup= "value=value.replace(/[^\d]/g, ' ')   "onbeforepaste= "clipboardData.setData( 'text ',clipboardData.getData( 'text ').replace(/[^\d]/g, ' ')) " />