文本框的问题

developer45 2008-04-02 08:44:39
大家好,有这样一个问题:我在文本框的keypress事件中,编写:
如果输入的是字符(例如a等),则弹出对话框,说明无效,重新输入,然后我想清空选中文本框中的内容,该怎样实现呢?
...全文
73 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
aight 2008-04-03
  • 打赏
  • 举报
回复

Private Sub Text1_Change()
If Asc(InStr(1, Text1.Text) = 97) Then
If (MsgBox("输入错误!", vbOKOnly) = vbOK) Then
Text1.SelStart = 0
Text1.SelLength = Text1.Width
Text1.SetFocus
End If
End If
End Sub

因为字母a对应的ASCII值是97,所以在判断的时候用Asc(InStr(1, Text1.Text) = 97)来判断
接着,弹出输入错误,并按了确定之后,就会把输入的a选中,楼主可以试一下.
另外,二楼的keyascii是指的按键对应的ASCII的值.
cbm6666 2008-04-03
  • 打赏
  • 举报
回复
Private Sub Text1_KeyPress(KeyAscii As Integer)
If (KeyAscii >= 65 And KeyAscii <= 90) Or (KeyAscii >= 97 And KeyAscii <= 122) Then
KeyAscii = 0 '一般就是不给值
'Text1.Text = "" '把整个Text1清空没道理
MsgBox ("输入无效,请重新输入!")
End If
End Sub


东方之珠 2008-04-02
  • 打赏
  • 举报
回复
改成这样:
Private Sub Text1_Change()
If InStr(1, Text1.Text, "a") > 0 Then
MsgBox ("输入无效,请重新输入!")
Text1.Text = ""
End If
End Sub
东方之珠 2008-04-02
  • 打赏
  • 举报
回复
哦发现错了:Text1_Change中要取消Text1.Text = "",否则不能输入了。对不起!
东方之珠 2008-04-02
  • 打赏
  • 举报
回复
应该这样:

Option Explicit

Private Sub Form_Load()
Text1.Text = ""
End Sub

Private Sub Text1_Change()
If InStr(1, Text1.Text, "a") > 0 Then MsgBox ("输入无效,请重新输入!")
Text1.Text = ""
End Sub
developer45 2008-04-02
  • 打赏
  • 举报
回复
太感谢了,你能告诉我那个 KeyAscii = 0 有什么作用吗?
pcwe2002 2008-04-02
  • 打赏
  • 举报
回复
Private Sub Text1_KeyPress(KeyAscii As Integer)
If Chr(KeyAscii) = "a" Then
MsgBox "无效"
KeyAscii = 0
Text1.Text = ""
End If
End Sub

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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