搜索
bottom↓
回复: 17

求助:VB6.0中如何让焦点自动返回出错的文本框(附代码)?

[复制链接]

出0入0汤圆

发表于 2009-5-4 20:09:55 | 显示全部楼层 |阅读模式
使用下面的代码,如果输入的数字大于65535,当焦点离开该文本框时,系统会给报错...但如何让焦点自动返回出错的这个文本框呢?
Private Sub HEART_TIME_Validate(Cancel As Boolean)
If HEART_TIME.Text > 65535 Then MsgBox "设置超出范围,请重新输入!", vbExclamation + vbOKOnly, " 系统信息"
End Sub

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入22汤圆

发表于 2009-5-4 20:43:44 | 显示全部楼层
setfocus函数

出0入0汤圆

发表于 2009-5-4 22:12:16 | 显示全部楼层
不行的话就用API函数,无所不能的。

出0入0汤圆

 楼主| 发表于 2009-5-5 14:20:30 | 显示全部楼层
楼上两位...这两种函数具体怎么用呢??
1楼兄弟,我刚试一下,不知道怎么用setfocus可否给个示例?我刚开始学/

出0入57汤圆

发表于 2009-5-5 15:08:04 | 显示全部楼层
HEART_TIME.setfocus
我没试,感觉应该是这样~~~

出0入22汤圆

发表于 2009-5-5 15:16:55 | 显示全部楼层
在窗体上画两个text和两个button,加入以下代码:

Private Sub Command1_Click()
    Text1.SetFocus
End Sub

Private Sub Command2_Click()
    Text2.SetFocus
End Sub

点击按钮后你就可以看见效果了。

出0入0汤圆

 楼主| 发表于 2009-5-5 15:21:30 | 显示全部楼层
楼上的示例方法是可以...
  但我目前的情况是:
Private Sub HEART_TIME_Validate(Cancel As Boolean)
If HEART_TIME.Text > 65535 Then MsgBox "设置超出范围,请重新输入!", vbExclamation + vbOKOnly, " 系统信息"
End Sub
   在焦点离开此文本框判断数值是否超出范围.
  我的问题是如何在其超出范围时,令焦点自动返回这个出错了的文本框呢?
  有什么解决方法呢?

出0入57汤圆

发表于 2009-5-5 15:27:16 | 显示全部楼层
If val(HEART_TIME.Text) > 65535 Then
HEART_TIME.Text=""   '或者是HEART_TIME.Text="65535",超出范围变成最大值
HEART_TIME.setfocus
MsgBox "设置超出范围,请重新输入!", vbExclamation + vbOKOnly, " 系统信息"


如果有很多个文本框的话就每个都加上吧,我比较笨,只会这样,我对上位的宗旨就是能实现功能就行……

出330入0汤圆

发表于 2009-5-5 16:07:30 | 显示全部楼层
在焦点离开此文本框判断数值是否超出范围.
=======================
我明白你的意思和想法,这个实际上是有点难度的。
要考虑坐标位置的变化、转移。。。

出330入0汤圆

发表于 2009-5-5 16:20:47 | 显示全部楼层
用光标的坐标,或者鼠标点击的位置坐标 去 减去 那个文本所在的客户区坐标,然后判断是否离开了那个区域。Then……
    Dim i As Long, j As Long
    X = X - …….Left
    Y = Y - …….Top
    If (X < 0 Or Y < 0 Or X > …… Or Y > ……)
    Then
        ……

出0入0汤圆

 楼主| 发表于 2009-5-5 17:06:12 | 显示全部楼层
9楼给出的方法是在什么情况下判断呢??也就是你的这一段代码放在何处比较合适呢?

出0入22汤圆

发表于 2009-5-5 17:32:03 | 显示全部楼层
估计楼主想要的是这个功能了。
点击此处下载 ourdev_442298.rar(文件大小:2K) (原文件名:焦点检测.rar)

出0入0汤圆

 楼主| 发表于 2009-5-5 18:00:37 | 显示全部楼层
呵呵....高手就是不一样啊...谢谢13楼的解答!!就是这个问题啦...

出330入0汤圆

发表于 2009-5-5 18:32:46 | 显示全部楼层
原来你的要求这样简单。呵呵。
再给你提议增强一点效果:焦点返回后,文本框中的文字处于选中状态——高亮文本


(原文件名:高亮显示文本.png)


(原文件名:超限了.png)


(原文件名:返回后高亮文本.png)

出0入0汤圆

 楼主| 发表于 2009-5-5 18:35:51 | 显示全部楼层
谢谢15楼的指点!!...方法收收藏了!!
  我选用了改变背景颜色为红色进行提示...

出0入0汤圆

发表于 2010-3-23 22:24:51 | 显示全部楼层
MARK
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 22:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表