读书人

怎样控制TextBox录入时只能录入数字

发布时间: 2012-03-01 10:25:46 作者: rapoo

怎样控制TextBox录入时,只能录入数字,而且控制在5-95之间。
高手请指教,小弟做一个小项目,想在新规时,TextBox文本框录入时,只能录入数字,而且将数字控制在5到95之间,其他任何数不允许录入,请给点详细代码,谢谢了,比较急,在线等了。

[解决办法]
正则表达式 /^[0-9()\-]{5,95}$/
然后使用RegularExpressionValidator控件属性ControlToValidate关联的控件,ValidationExpression设置/^[0-9()\-]{5,95}$/
[解决办法]
winform or webform

如果是webform,用RangeValidator验证控件
MinimumValue设为5
MaximumValue设为35
Type设为Integer

如果是winform,在什么时候控制,输入时,还是提交时
[解决办法]
输入时可以控制,但是效果不好,提交时,可以这样

If Not Regex.IsMatch(TextBox1.Text, "^([5-9]|[1-8][0-9]|9[0-5])$ ") Then
MessageBox.Show( "输入错误 ")
End If

另外把MaxLength属性设为2,这样会好些
[解决办法]
使用 MaskedTextBox1 设置mask=99


Private Sub MaskedTextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles MaskedTextBox1.LostFocus
If CType(Me.MaskedTextBox1.Text.Trim, Integer) > 95 Or CType(Me.MaskedTextBox1.Text.Trim, Integer) < 5 Then
MessageBox.Show( "错误 ")
End If
End Sub

这个应该会很简单 不需要正则表达是

[解决办法]
Imports System.Text.RegularExpressions
[解决办法]
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
int asc= (int) e.KeyChar ;
e.Handled = asc < 48 || asc > 57;


}

private string nowvalue;


private void textBox1_Leave(object sender, EventArgs e)
{
if (textBox1.Text != null && textBox1.Text != " ")
{
int v = int.Parse(textBox1.Text);
if (v < 5 || v > 95)
{
textBox1.Text = nowvalue;
}
else
{
nowvalue = textBox1.Text;
}
}
}
[解决办法]
sunzhong2003 比我快了一步。 我写代码前没有你的回复哦。
[解决办法]
TOmysticboy,你教坏这些人了,做这行的,重要的是思想,给个思想就够了
我很少给代码的
现在的人懒,不愿意自己去思考
呵呵,mysticboy,好人啊
[解决办法]
mysticboy 很厚道
[解决办法]
哎呀。
就我写的这段代码。 把 回退键过滤掉了。 没有设置最大长度。 有人在我博客里的评论和不友好。
你看我都用代码给了思路了。

人家还说我没考虑别的。
你看看下面的留言。
////////////////////////////////////////////////
edmajia01 [2007-07-14 05:36 PM]
你认为这样就是对的吗?拜托,请在这么做的同时

把右键屏蔽掉,否则可以粘贴,如粘贴“fds”导致异常
把MaxLength属性设为2,否则输入76435439050345会溢出,同样会导致异常

另外,这样做同样把回退按键屏蔽掉了,如果用户误输入为“676”,想修改时难道你要提示他只能用“Delete”键删除吗,还是说你想为此再加一个清空按钮,这显然并不人性化
///////////////////////////////////////

不管留这个言的是那个朋友。 我一再强调。 我只能给个思路。别的自己考虑 。

读书人网 >VB Dotnet

热点推荐