如何让TEXTBOX只能输入数字?

bulls59888 2011-05-12 05:12:07
如何让TEXTBOX只能输入数字?但是前提是要可以输入0。以前朋友给我的不错 但是 不是输入 以0开头的 数字串

比如:0231445671 。
...全文
250 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
WTAAA520 2011-05-18
  • 打赏
  • 举报
回复
Boolean result = true ;
char[] arr = this.txtNum.Text.ToCharArray();

foreach (char num in arr)
{
if (!(char.IsDigit(num)))
{
result = false ;
}
}

if (result)
{
MessageBox.Show("是数字!");
}

if (result == false)
{
MessageBox.Show("不是数字");
}
Just4life 2011-05-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bdmh 的回复:]
在keypress中判断
[/Quote]

++
netxiaoma 2011-05-13
  • 打赏
  • 举报
回复
正则表达式
zch375708220 2011-05-13
  • 打赏
  • 举报
回复
<asp:TextBox ID="TextBox1" runat="server" onpaste="return false" onkeypress="if ((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46) event.returnValue=false;" ></asp:TextBox>
用这个onkeypress="if ((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46) event.returnValue=false;"出了数字什么都不可以输入
zzmsyt 2011-05-13
  • 打赏
  • 举报
回复
写的太快了 忘记加返回值了 汗!再给你加上

public bool Isdigit(string str)
{
char[] temp = str.ToCharArray();
foreach (char cr in temp)
{
if (!char.IsDigit(cr))
{
return false;
}
}
return ture;
}


mailbao 2011-05-13
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 bulls59888 的回复:]
if (!System.Text.RegularExpressions.Regex.IsMatch((sender as TextBox).Text, @"^(?!0\d)\d+(\.\d*)?$"))
{
int index = (sender as TextBox).SelectionStart;
(sender as TextBox).Text = (sender as T……
[/Quote]


直接將你原來的正則表達式 @"^(?!0\d)\d+(\.\d*)?$" 修改如下:

@"^\d+(\.\d*)?$"

zzmsyt 2011-05-13
  • 打赏
  • 举报
回复
有char.isdigit 我给你写了个 你改改就能用了

public bool Isdigit(string str)
{
char[] temp = str.ToCharArray();
foreach (char cr in temp)
{
if (!char.IsDigit(cr))
{
MessageBox.Show(cr.ToString()+"is not a digit");
}
}
}

??????8 2011-05-13
  • 打赏
  • 举报
回复
MaskedTextBox

别忘了小数点
Kylinone 2011-05-13
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 good_tong 的回复:]
string s = "0123456789" + (char)8;
if (s.IndexOf(e.KeyChar.ToString()) < 0)
{
e.Handled = true;
}
[/Quote]
你太有才了!
让爱延续 2011-05-13
  • 打赏
  • 举报
回复

private void txt_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsNumber(e.KeyChar) || e.KeyChar == (char)Keys.Back || e.KeyChar == (char)Keys.Enter))
{
e.Handled = true;
}
}
太阳丛 2011-05-13
  • 打赏
  • 举报
回复
string s = "0123456789" + (char)8;
if (s.IndexOf(e.KeyChar.ToString()) < 0)
{
e.Handled = true;
}
Top_小鑫 2011-05-13
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 bulls59888 的回复:]
if (!System.Text.RegularExpressions.Regex.IsMatch((sender as TextBox).Text, @"^(?!0\d)\d+(\.\d*)?$"))
{
int index = (sender as TextBox).SelectionStart;
(sender as TextBox).Text = (sender as T……
[/Quote]

这真是废话的。
zzz小菜鸟zzz 2011-05-13
  • 打赏
  • 举报
回复
enen[Quote=引用 2 楼 porschev 的回复:]
正则: ^\d+$
[/Quote]
bulls59888 2011-05-12
  • 打赏
  • 举报
回复
我看了 你说的那个函数确实没有
zzmsyt 2011-05-12
  • 打赏
  • 举报
回复
我记得好像有个方法是判断的isdigital 应该有 下班了 明天来给你看看,你可以进行判断
if(isdigital(this.TextBox1.text))
{
messagebox.show(“你输入的是数字”);
}
bulls59888 2011-05-12
  • 打赏
  • 举报
回复
if (!System.Text.RegularExpressions.Regex.IsMatch((sender as TextBox).Text, @"^(?!0\d)\d+(\.\d*)?$"))
{
int index = (sender as TextBox).SelectionStart;
(sender as TextBox).Text = (sender as TextBox).Tag as string;
(sender as TextBox).SelectionStart = index;
}

我用这个 但是是不允许输入 0的
旅行者I号 2011-05-12
  • 打赏
  • 举报
回复
winform程序有MaskedTextBox控件可以用
web的onkeypress事件+js
Bo217 2011-05-12
  • 打赏
  • 举报
回复
支持楼上的
cjh200102 2011-05-12
  • 打赏
  • 举报
回复
楼上的几种都可以实现
Mr_graceless 2011-05-12
  • 打赏
  • 举报
回复
正则表达式,事件里面判断阿死克马值,都可以的
加载更多回复(5)

110,534

社区成员

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

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

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