C#怎么限制文本框只能输入数字???

vinjuviva 2009-03-10 12:47:47
如题,我有四个文本框需要限制只能输入数字,最好能给出具体代码!!!
...全文
9149 43 打赏 收藏 转发到动态 举报
写回复
用AI写文章
43 条回复
切换为时间正序
请发表友善的回复…
发表回复
审什 2012-08-23
  • 打赏
  • 举报
回复

//下面的示例确定用户是否按下了非数字键,如果是,则通过使用 Handled 属性取消 KeyPress 事件。

private bool nonNumberEntered = false;
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
nonNumberEntered = false;
if ((e.KeyCode < Keys.D0) || (e.KeyCode > Keys.D9 && e.KeyCode < Keys.NumPad0) || (e.KeyCode > Keys.NumPad9))
{
if (e.KeyCode != Keys.Back)
{
nonNumberEntered = true;
}
}
}

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (nonNumberEntered)
{
e.Handled = true;
审什 2012-08-23
  • 打赏
  • 举报
回复

//下面的示例确定用户是否按下了非数字键,如果是,则通过使用 Handled 属性取消 KeyPress 事件。

private bool nonNumberEntered = false;
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
nonNumberEntered = false;
if ((e.KeyCode < Keys.D0) || (e.KeyCode > Keys.D9 && e.KeyCode < Keys.NumPad0) || (e.KeyCode > Keys.NumPad9))
{
if (e.KeyCode != Keys.Back)
{
nonNumberEntered = true;
}
}
}

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (nonNumberEntered)
{
e.Handled = true;
写的真好啊 7楼的
cream1990 2012-03-14
  • 打赏
  • 举报
回复

String Temps = "";

private void textBox1_TextChanged(object sender, EventArgs e)
{
if (!System.Text.RegularExpressions.Regex.IsMatch((sender as TextBox).Text, @"^[0-9]*$"))
{
textBox1.Text = Temps;
}
else if (textBox1.Text.StartsWith("0")) textBox1.Text = textBox1.Text.Substring(1);
else { Temps = textBox1.Text; }

}


第一个字符只能是1-9
但缺点是,一旦输入错误,光标会跳到最左边
王木木 2011-09-17
  • 打赏
  • 举报
回复
32楼:
private void textInMoney_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 0x20) e.KeyChar = (char)0; //禁止空格键
if ((e.KeyChar == 0x2D) && (((TextBox)sender).Text.Length == 0)) return; //处理负数
if (e.KeyChar > 0x20)
{
try
{
double.Parse(((TextBox)sender).Text + e.KeyChar.ToString());
}
catch
{
e.KeyChar = (char)0; //处理非法字符
}
}
}

才是真正的高手,收了
wyp19870608 2011-07-28
  • 打赏
  • 举报
回复
6楼的好方法,我用你的方法解决问题了,感谢!
shijizhisheng 2011-01-11
  • 打赏
  • 举报
回复
下面都说的那么复杂,五楼给出的答案,多简洁清晰啊!
GTM00 2010-12-14
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 kjkj911 的回复:]
private void textBox1_TextChanged(object sender, EventArgs e)
{
string strInput = this.textBox1.Text.ToString();
string strRegex = @"^\d+$";

if (!Regex.IsMatch(strInput, strRegex))
{
……
[/Quote]
这个可以用。
alanjay123456 2010-09-24
  • 打赏
  • 举报
回复
jslkdjflasjfl
icq80 2010-07-06
  • 打赏
  • 举报
回复
啊啊啊啊啊啊啊啊啊啊啊aaa
vinjuviva 2009-03-11
  • 打赏
  • 举报
回复
最后找到这个方法是最好的!!

private void textInMoney_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 0x20) e.KeyChar = (char)0; //禁止空格键
if ((e.KeyChar == 0x2D) && (((TextBox)sender).Text.Length == 0)) return; //处理负数
if (e.KeyChar > 0x20)
{
try
{
double.Parse(((TextBox)sender).Text + e.KeyChar.ToString());
}
catch
{
e.KeyChar = (char)0; //处理非法字符
}
}
}

caofei277 2009-03-11
  • 打赏
  • 举报
回复
正则表达式
^[0-9]*$
wuyi8808 2009-03-10
  • 打赏
  • 举报
回复
MaskedTextBox
weilong147247943 2009-03-10
  • 打赏
  • 举报
回复
用验证控件``
^[0-9]{1,}$ 正则表达式
北京的雾霾天 2009-03-10
  • 打赏
  • 举报
回复
Winform?

你最好从TextBox继承一个新的类,然后重写Wndproc,可以参考:

http://blog.csdn.net/hbxtlhx/archive/2004/11/12/178510.aspx
markshang 2009-03-10
  • 打赏
  • 举报
回复
用正则表达式
闲着吃菜 2009-03-10
  • 打赏
  • 举报
回复
7楼的很强悍 我试了下可以实现
湖中仙人 2009-03-10
  • 打赏
  • 举报
回复
char.isnumber=True
Grave_rain 2009-03-10
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 LJH20002004200820131 的回复:]
C# code
private void textBox6_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if((int)e.KeyChar>=48&(int)e.KeyChar <=57|(int)e.KeyChar==8)
{
e.Handled=false;
}
else
{
e.Handled=true;
}

}
[/Quote]
顶这个!!!
kongdelu2008 2009-03-10
  • 打赏
  • 举报
回复
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if ( “在此添加ASCII码验证,看输入的字串是否符合条件”)
{
//如果满足条件
e.Handled = false;
}
else
{
e.Handled = true;
}
}
这里继承重写了textbox 的textBox1_KeyPress方法

基本框架是这样的,我原来就是这样写的,是完全可以的,好长时间没接触了,你可以试试,也不知道有没有记错
hnjhjzyyxgs 2009-03-10
  • 打赏
  • 举报
回复
1。键盘按键验证
2。评比复制粘贴
3。输入好在验证事情中验证
加载更多回复(22)

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧