标题:关于焦点返回文本框的问题
取消只看楼主
yuantao100
Rank: 2
等 级:论坛游民
帖 子:61
专家分:16
注 册:2012-7-5
结帖率:100%
已结贴  问题点数:20 回复次数:12 
关于焦点返回文本框的问题
我的表单里面有一个文本框text1,主要平时用来扫条码。

我想让操作员不管在表单上点选了啥,焦点都回到这个文本框,所以在lostfocus里写了this.setfocus。

后来界面上多了一些工作,我想让这个文本框失去焦点的时候,去处理command1的click,
就把lostfocus里改成了,并在command1的click最后写了thisform.text1.setfocus,
但是焦点却不会回到这个text1里面了。。。但是直接点command1焦点是可以回来的。。。

不知道我说明白没?这个有办法解决没?

搜索更多相关主题的帖子: click 文本框 焦点 text1 返回 
2020-07-24 19:35
yuantao100
Rank: 2
等 级:论坛游民
帖 子:61
专家分:16
注 册:2012-7-5
得分:0 
以下是引用吹水佬在2020-7-24 21:01:00的发言:

在lostfocus里写了this.setfocus,会离不开text1


不会啊,我的在别的表单里面点一下就离开了。。
但是点命令窗口就离不开text1,焦点还会回text1
2020-07-25 08:34
yuantao100
Rank: 2
等 级:论坛游民
帖 子:61
专家分:16
注 册:2012-7-5
得分:0 
以下是引用吹水佬在2020-7-24 20:56:14的发言:

text1的lostfocus里调用完了还会回到lostfocus里最后离开text1

老大,那有解决办法吗?
我想text1在失去焦点时执行完,然后焦点还回到text1....
因为这个text1在接收条码,在条码枪扫描条码处理完后,还接着扫下一下,
不然每次就要鼠标点一下
2020-07-25 08:36
yuantao100
Rank: 2
等 级:论坛游民
帖 子:61
专家分:16
注 册:2012-7-5
得分:0 
以下是引用瓜瓜1990在2020-7-24 22:41:35的发言:

在text控件的lostfocus事件里写this.setfocus,焦点仍会离开
在valid事件里输入return 0,可以不让焦点离开.

我主要是想让程序处理完必要的操作后,再回到text1
2020-07-25 08:38
yuantao100
Rank: 2
等 级:论坛游民
帖 子:61
专家分:16
注 册:2012-7-5
得分:0 
以下是引用zhken在2020-7-24 23:04:10的发言:

看一下tab顺序,可以将text1和command设为相邻的顺序,command顺序为后,如有必要,在command的getfocus写上thisform.text1.setsocus确保万无一失

试了下,貌似不行啊。。。
2020-07-25 08:39
yuantao100
Rank: 2
等 级:论坛游民
帖 子:61
专家分:16
注 册:2012-7-5
得分:0 
以下是引用吹水佬在2020-7-25 09:05:14的发言:

在lostfocus里处理完事务后发个异步消息,在消息处理过程执行text1.setfocus应该可以

好的,那我试试。。
2020-07-25 10:52
yuantao100
Rank: 2
等 级:论坛游民
帖 子:61
专家分:16
注 册:2012-7-5
得分:0 
以下是引用吹水佬在2020-7-25 16:14:05的发言:

DECLARE LONG PostMessage IN User32 LONG, LONG, LONG, LONG
#DEFINE MY_MSG  0x401
of = CREATEOBJECT("form1")
of.show(1)
RETURN

DEFINE CLASS form1 as Form
    ADD OBJECT text1 as textbox WITH left=10,top=10,SelectOnEntry=1
    ADD OBJECT text2 as textbox WITH left=10,top=40
    PROCEDURE init
        BINDEVENT(this.hWnd, MY_MSG, this, "myMsg")
    ENDPROC
    PROCEDURE myMsg(hWnd, uMsg, wParam, lParam)
        this.text1.setfocus
    ENDPROC
    PROCEDURE text1.lostfocus
        thisform.text2.value = thisform.text1.value
        PostMessage(thisform.hWnd, MY_MSG, 0, 0)
    ENDPROC
ENDDEFINE



呃,大佬,我再问个题外的问题,我用modi form做的表单,有没有办法把它变成像您这样的PRG程序?
2020-07-25 18:26
yuantao100
Rank: 2
等 级:论坛游民
帖 子:61
专家分:16
注 册:2012-7-5
得分:0 
我去试试
2020-07-25 18:57
yuantao100
Rank: 2
等 级:论坛游民
帖 子:61
专家分:16
注 册:2012-7-5
得分:0 
以下是引用吹水佬在2020-7-25 19:52:29的发言:

静态设计form一样
在表单设计器自定义方法myMsg(菜单--表单--新建方法程序)


OK! 谢过大侠!!
2020-07-25 20:03
yuantao100
Rank: 2
等 级:论坛游民
帖 子:61
专家分:16
注 册:2012-7-5
得分:0 
以下是引用sdta在2020-7-25 18:30:55的发言:

类浏览器中转换


奇怪,表单运行是好的,可我用类浏览器转换出来的代码,运行的时候说语法错误 。。。
就是这句:
    ADD OBJECT yxwhqx.pageframe1.page1.bb100 AS checkbox WITH ;
        Top = 22, ;
        Left = 23, ;
        Height = 16, ;
        Width = 93, ;
        AutoSize = .T., ;
        Caption = "药品标签打印", ;
        Name = "bb100
2020-07-26 13:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-502619-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.184695 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved