怎样控制TextBox录入时,只能录入数字,而且控制在5-95之间。

wcazp 2007-07-13 07:34:49
高手请指教,小弟做一个小项目,想在新规时,TextBox文本框录入时,只能录入数字,而且将数字控制在5到95之间,其他任何数不允许录入,请给点详细代码,谢谢了,比较急,在线等了。
...全文
923 26 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
rakuu 2007-07-15
  • 打赏
  • 举报
回复
mysticboy(_๑۩۞۩๑۰•●|麦۞壳۞饼|●•۰๑۩۞۩๑_) ( ) 信誉:100

这位兄弟正解
麦壳饼 2007-07-15
  • 打赏
  • 举报
回复
哎呀。
就我写的这段代码。 把 回退键过滤掉了。 没有设置最大长度。 有人在我博客里的评论和不友好。
你看我都用代码给了思路了。

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

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

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

不管留这个言的是那个朋友。 我一再强调。 我只能给个思路。别的自己考虑 。
sunzhong2003 2007-07-14
  • 打赏
  • 举报
回复
TOmysticboy,你教坏这些人了,做这行的,重要的是思想,给个思想就够了
我很少给代码的
现在的人懒,不愿意自己去思考
呵呵,mysticboy,好人啊
guodabao 2007-07-14
  • 打赏
  • 举报
回复
学习一下
mingwj1980 2007-07-14
  • 打赏
  • 举报
回复
用AJAX的话可以不让用户输其它字母,当然这样做要麻烦点
haoztao 2007-07-14
  • 打赏
  • 举报
回复
正则表达式也可以,不会的话就用if之类的判断一下
zz_zzl2008 2007-07-14
  • 打赏
  • 举报
回复
mysticboy 很厚道
wcazp 2007-07-13
  • 打赏
  • 举报
回复
问题解决了,谢谢各位支持。支持CSDN
麦壳饼 2007-07-13
  • 打赏
  • 举报
回复
http://www.mysticboy.cn/article.asp?id=54
麦壳饼 2007-07-13
  • 打赏
  • 举报
回复
sunzhong2003 比我快了一步。 我写代码前没有你的回复哦。
麦壳饼 2007-07-13
  • 打赏
  • 举报
回复
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;
}
}
}
amu112964 2007-07-13
  • 打赏
  • 举报
回复
在读入以后在处理,可能简单一些
-过客- 2007-07-13
  • 打赏
  • 举报
回复
Imports System.Text.RegularExpressions
sunzhong2003 2007-07-13
  • 打赏
  • 举报
回复
在KEYPRESS事件里做判断是否输入数字,然后在leave事件里,判断
wcazp 2007-07-13
  • 打赏
  • 举报
回复
MaskedTextBox这个控件2003里面有么?
红衣老大 2007-07-13
  • 打赏
  • 举报
回复
楼上的 似乎不行

如果你输入15 那么当你按下1的时候就已经出错了
sunzhong2003 2007-07-13
  • 打赏
  • 举报
回复
在KEYPRESS事件里做
红衣老大 2007-07-13
  • 打赏
  • 举报
回复
使用 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

这个应该会很简单 不需要正则表达是
wcazp 2007-07-13
  • 打赏
  • 举报
回复
Regex 是什么意思啊? 我的是2003
cxy0303 2007-07-13
  • 打赏
  • 举报
回复
或者在leave事件中判断也可以
加载更多回复(6)

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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