求助:VB6.0中如何让焦点自动返回出错的文本框(附代码)?
使用下面的代码,如果输入的数字大于65535,当焦点离开该文本框时,系统会给报错...但如何让焦点自动返回出错的这个文本框呢?Private Sub HEART_TIME_Validate(Cancel As Boolean)
If HEART_TIME.Text > 65535 Then MsgBox "设置超出范围,请重新输入!", vbExclamation + vbOKOnly, " 系统信息"
End Sub setfocus函数 不行的话就用API函数,无所不能的。 楼上两位...这两种函数具体怎么用呢??
1楼兄弟,我刚试一下,不知道怎么用setfocus可否给个示例?我刚开始学/ HEART_TIME.setfocus
我没试,感觉应该是这样~~~ 在窗体上画两个text和两个button,加入以下代码:
Private Sub Command1_Click()
Text1.SetFocus
End Sub
Private Sub Command2_Click()
Text2.SetFocus
End Sub
点击按钮后你就可以看见效果了。 楼上的示例方法是可以...
但我目前的情况是:
Private Sub HEART_TIME_Validate(Cancel As Boolean)
If HEART_TIME.Text > 65535 Then MsgBox "设置超出范围,请重新输入!", vbExclamation + vbOKOnly, " 系统信息"
End Sub
在焦点离开此文本框判断数值是否超出范围.
我的问题是如何在其超出范围时,令焦点自动返回这个出错了的文本框呢?
有什么解决方法呢? If val(HEART_TIME.Text) > 65535 Then
HEART_TIME.Text="" '或者是HEART_TIME.Text="65535",超出范围变成最大值
HEART_TIME.setfocus
MsgBox "设置超出范围,请重新输入!", vbExclamation + vbOKOnly, " 系统信息"
如果有很多个文本框的话就每个都加上吧,我比较笨,只会这样,我对上位的宗旨就是能实现功能就行…… 在焦点离开此文本框判断数值是否超出范围.
=======================
我明白你的意思和想法,这个实际上是有点难度的。
要考虑坐标位置的变化、转移。。。 用光标的坐标,或者鼠标点击的位置坐标 去 减去 那个文本所在的客户区坐标,然后判断是否离开了那个区域。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
…… 9楼给出的方法是在什么情况下判断呢??也就是你的这一段代码放在何处比较合适呢? 估计楼主想要的是这个功能了。
点击此处下载 ourdev_442298.rar(文件大小:2K) (原文件名:焦点检测.rar) 呵呵....高手就是不一样啊...谢谢13楼的解答!!就是这个问题啦... 原来你的要求这样简单。呵呵。
再给你提议增强一点效果:焦点返回后,文本框中的文字处于选中状态——高亮文本
http://cache.amobbs.com/bbs_upload782111/files_14/ourdev_442312.png
(原文件名:高亮显示文本.png)
http://cache.amobbs.com/bbs_upload782111/files_14/ourdev_442313.png
(原文件名:超限了.png)
http://cache.amobbs.com/bbs_upload782111/files_14/ourdev_442314.png
(原文件名:返回后高亮文本.png) 谢谢15楼的指点!!...方法收收藏了!!./emotion/em197.gif
我选用了改变背景颜色为红色进行提示... MARK
页:
[1]