注册 登录
编程论坛 VFP论坛

想要在文本框里重新获得焦点。

tjdeming 发布于 2023-05-06 08:35, 225 次点击
想在文本框里重新获得焦点(在查无此人的情况下,光标不离开文本框)
在一个表单里的代码如下
对象(B):    ablText1   
过程(R):    LostFocus   

IF NOT USED("NXT")
     USE NXT IN O ALIAS NXT ENDIF sele nxj
locate for num=THISFORMTEXT1.VALUE
if .not.eof()
Thisform.text3.value=‘fg’
Else
     MessageBox("查无此人”,“提示”)
ThisForm.Text1.SetFocus    &&没有起作用?   
Return
endif
没有成功,不知道问题在哪里?求助!

[此贴子已经被作者于2023-5-6 08:37编辑过]

8 回复
#2
fyyylyl2023-05-06 09:05
在Valid()中判断,不满足条件时Return .f.
#3
tjdeming2023-05-06 09:31
回复 2楼 fyyylyl
谢谢你问下代码怎么写
#4
sdta2023-05-06 10:10
ThisForm.Text1.SetFocus    &&没有起作用?   
Return
改为
VALID 事件代码
return .f.

或者
return ThisForm.Text1

[此贴子已经被作者于2023-5-6 14:32编辑过]

#5
吹水佬2023-05-06 10:49
想在文本框里重新获得焦点(在查无此人的情况下,光标不离开文本框)
在一个表单里的代码如下
对象(B):    ablText1   
过程(R):    LostFocus   

IF NOT USED("NXT")
     USE NXT IN O ALIAS NXT ENDIF sele nxj
locate for num=THISFORMTEXT1.VALUE
if .not.eof()
Thisform.text3.value=‘fg’
Else
     MessageBox("查无此人”,“提示”)
**ThisForm.Text1.SetFocus    &&没有起作用?   
NODEFAULT
Return
endif



[此贴子已经被作者于2023-5-6 14:20编辑过]

#6
tjdeming2023-05-07 06:14
回复 4楼 sdta
非常感谢,成了!
#7
tjdeming2023-05-07 06:23
二位大佬的代码都成了。我也遇到另一个情况,在查无此人的情况下,光标能回到text1处后,我若直接点击退出命令按钮,则不能直接关闭该表单,而是必须查到人员的情况下,点击退出命令才可以关闭表单。
#8
tjdeming2023-05-07 06:25
回复 5楼 吹水佬
非常感谢,成了!
#9
sdta2023-05-07 10:39
以下是引用tjdeming在2023-5-7 06:23:10的发言:

二位大佬的代码都成了。我也遇到另一个情况,在查无此人的情况下,光标能回到text1处后,我若直接点击退出命令按钮,则不能直接关闭该表单,而是必须查到人员的情况下,点击退出命令才可以关闭表单。

在命令按钮中写入相应的代码就不会出现退不出的情况
1