📄 vb.txt
字号:
Top
1 楼pyf1027(我为峰)回复于 2004-04-23 07:38:38 得分 20Private Sub text1_KeyPress(KeyAscii As Integer)
If KeyAscii <> vbKeyBack And KeyAscii < 48 Or KeyAscii > 57 And KeyAscii <> 13 Then
KeyAscii = 0
End If
End Sub
Private Sub text1_LostFocus()
if trim(text1.text)<>"" then
if len(trim(text1.text))<6 then
msgbox"我的号码必须大于5位数!",48,"提示"
text1.setfocus
end if
end if
End Sub
鼠标经过标签时显示手行:(手型图标需要自己找)
private sub Form_Load()
label1.MousePointer=99 '自定义鼠标形状
label1.MouseIcon=LoadPicture("D:\手型图标.ico")
end sub
Private Sub Label4_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
label1.MousePointer=99
End Sub
Top
2 楼flc(▄︻┻┳═一)回复于 2004-04-23 07:45:02 得分 0 学习
Top
3 楼wwwzzzfff(向左走)回复于 2004-04-23 09:12:29 得分 0 借版主一角,向大家请教相关问题。多谢
在txtbox中输入数字后。发现输入错误。想纠正。但光标去到最后。怎样才能从后向前删除?现在只能将光标移上前一个数,才能删除后一个。举例:输入 “0023”后,光标去到最后,发现“3”错误。想改“4”,想从后向前删除,但不能。只能将光标移到“2”后面,再删除“3”,非常麻烦。所以请大家指教
Top
4 楼ryuginka(一米八五的猪)回复于 2004-04-23 09:24:26 得分 0 把那个backspace(删除键盘的KEYCODE屏蔽掉啊)
在你的程序外面屏蔽(在KEYDOWN事件中)
if keycode=46 or keycode=8 then
exit sub
endif
Top
5 楼flyingZFX(卍 南无阿弥陀佛 卍)回复于 2004-04-23 09:54:04 得分 0 不会吧,
我的天,晕死我了,
Top
6 楼ryuginka(一米八五的猪)回复于 2004-04-23 10:05:40 得分 10给楼主一段我正在项目中用的数字输入方法:
(你把长度自己控制一下为5位吧)
Private gNumbers As String
Private Sub Form_Load()
gNumbers = "1234567890" + Chr(8) + Chr(45) + Chr(46) '控制TextBox框只能输入数
End Sub
Private Sub TxtCKS_KeyPress(KeyAscii As Integer)
If InStr(gNumbers, Chr(KeyAscii)) = 0 Then KeyAscii = 0
If KeyAscii = 46 And InStr(TxtCKS.Text, ".") <> 0 Then KeyAscii = 0 '"."点号只能出现一次
If KeyAscii = 45 Then '"-"号必须放在第一位,且只能出现一次
If InStr(TxtCKS.Text, "-") <> 0 Then
KeyAscii = 0
Else
TxtCKS.SelStart = 0
End If
End If
End Sub
Top
7 楼wwwzzzfff(向左走)回复于 2004-04-23 15:20:09 得分 0 请大家再说清楚一点
Top
8 楼wwwzzzfff(向左走)回复于 2004-04-23 22:34:31 得分 0 本人又遇到另两个问题。1,我规定TXTNAME只能输入中文和英文,不能输入其它。怎样编?
2,我添加记录到SQL,只能按顺序添加,不能跳跃添加。举例: 编码 0001 姓名 张三 ,规定下一条记录是 编码 0002 姓名 李四, 不能出现一下子编码序号跳到 编码 0022 姓名 李四。敬请各位师兄指教
Top
9 楼BlueBeer(1win)回复于 2004-04-24 00:42:44 得分 0 楼上的,你的第一个问题与楼主的问题差不多,ryuginka(ryuginka)已经教你了啊
他的只能输数字,你的是不能输数字,反过来不就行了,即如果用户输入的字符在你禁用的范围内,就让kayascii=0就行了
Top
10 楼BlueBeer(1win)回复于 2004-04-24 03:26:23 得分 5边看边学:)
Const xStr As String = "0123456789"
Private Sub Text1_KeyPress(KeyAscii As Integer)
'只能输入数字
KeyAscii = IIf(InStr(xStr, Chr(KeyAscii)) = 0, 0, KeyAscii)
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
'只能输入数字以外的字符
KeyAscii = IIf(InStr(xStr, Chr(KeyAscii)) = 0, KeyAscii, 0)
End Sub
Top
11 楼Jockey()回复于 2004-04-24 08:32:49 得分 5If IsNotChar(Types) Then
If IsInt(Types) Then
If KeyAscii = 8 Or KeyAscii >= 48 And KeyAscii <= 57 Then
Else
KeyAscii = 0
End If
ElseIf IsDbl(Types) Then
If KeyAscii >= 48 And KeyAscii <= 57 Then
Else
If KeyAscii = 8 Or KeyAscii = 45 Or KeyAscii = 46 Then
Else
KeyAscii = 0
End If
End If
ElseIf IsDateTime(Types) Then
If KeyAscii >= 48 And KeyAscii <= 57 Then
Else
If KeyAscii = 8 Or KeyAscii = 45 Or KeyAscii = 58 Then
Else
KeyAscii = 0
End If
End If
End If
End If
Top
12 楼wwwzzzfff(向左走)回复于 2004-04-24 16:29:42 得分 0 InStr(xStr, Chr(KeyAscii)) = 0,请问各位这句话是什么 意思?
Top
13 楼wwwzzzfff(向左走)回复于 2004-04-24 16:43:30 得分 0 2,我添加记录到SQL,只能按顺序添加,不能跳跃添加。举例: 编码 0001 姓名 张三 ,规定下一条记录是 编码 0002 姓名 李四,按顺序输下去, 不能出现一下子编码序号跳到 编码 0022 姓名 李四。敬请各位师兄指教
Top
14 楼LuBingLin(为什么?)回复于 2004-04-24 16:47:52 得分 0 InStr(xStr, Chr(KeyAscii)) = 0 如果你输入的值不是xStr里有的值就=0
BlueBeer(1win) ( ) 信誉:100
你的代码虽短,可惜浪费资源,此时你要进行二次的运算。.............
奉劝大家以后写代码不要为了精简而大大的浪费系统资源。汗.......等你们写个大系统时你就会知道系统资源是多么可贵的。:)
Top
15 楼BlueBeer(1win)回复于 2004-04-24 19:12:19 得分 0 楼上批评的对:)
我就是玩玩的,不拿这个吃饭,能写点小程序给自己用就很开心了:)
Top
16 楼yuanyuan0(元元)回复于 2004-04-24 21:54:09 得分 0 你的ID号设置的是自动增长的。当然不能跳了。你把它设置成自己输入的啊。不过要注意检测是否重复。要不想检测你就重新设置一个自动增长的主键
Top
17 楼CruelYoung123(向牛人们学习@HOHO~~~)回复于 2004-04-25 16:37:00 得分 0 Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not (IsNumeric(Chr(KeyAscii)) Or KeyAscii = 8) Then KeyAscii = 0
End Sub
一行代码够了
Top
18 楼pigpag(Pigpag - A GRE Fighter)回复于 2004-04-25 17:19:30 得分 0 请大家注意Validate事件。
这个事件是VB6开始特地加上的,为的就是让你验证值是否符合要求。
Validate事件比LostFocus好,因为可以控制哪些控件出发验证事件,这样就可以让用户有机会查看一些帮助信息(否则用户无法离开该控件)
Top
19 楼wwwzzzfff(向左走)回复于 2004-04-26 09:18:53 得分 0 刚才按“元元”师兄所教,在SQL里表中设置“NUMBER”为主键,输入即不能出现重复记录。多谢!但输入重复记录时,虽没有添加,却没有提示信息。敬请各位师兄写出提示重复信息或推介其它更优方法解决问题,供我参考。多谢大家!
Top
1.文本框只能输入数字代码(小数点也不能输入)
<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">
2.只能输入数字,能输小数点.
<input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')">
<input name=txt1 onchange="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';}">
3.数字和小数点方法二
<input type=text t_value="" o_value="" onkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onblur="if(!this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))this.value=this.o_value;else{if(this.value.match(/^\.\d+$/))this.value=0+this.value;if(this.value.match(/^\.$/))this.value=0;this.o_value=this.value}">
4.只能输入字母和汉字
<input onkeyup="value=value.replace(/[\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\d]/g,''))" maxlength=10 name="Numbers">
5.只能输入英文字母和数字,不能输入中文
<input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')">
6.只能输入数字和英文<font color="Red">chun</font>
<input onKeyUp="value=value.replace(/[^\d|chun]/g,'')">
7.小数点后只能有最多两位(数字,中文都可输入),不能输入字母和运算符号:
<input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /\.\d\d$/.test(value))event.returnValue=false">
8.小数点后只能有最多两位(数字,字母,中文都可输入),可以输入运算符号:
<input onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')">
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1517178
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -