标题:关于焦点返回文本框的问题
只看楼主
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:10 
* 改为这样,就正常,也就是把Text2隐藏起来,不需要
* 我为什么会这样测试呢,因为很多情况,界面上可能是不需要Text2的
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,Visible =.f.
    ADD OBJECT text3 as textbox WITH left=10,top=70
    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
2020-07-25 23:48
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 20楼 mywisdom88
text2是代表text1在lostfocus中要处理的事情,作示例用
实际情况如楼主的调用按钮点击过程
2020-07-26 04:31
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
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
回复 23楼 yuantao100
yxwhqx?

坚守VFP最后的阵地
2020-07-26 14:29
yuantao100
Rank: 2
等 级:论坛游民
帖 子:61
专家分:16
注 册:2012-7-5
得分:0 
以下是引用sdta在2020-7-26 14:29:10的发言:

yxwhqx?

嗯,我给表单起的名字。。。

上面有:DEFINE CLASS yxwhqx AS form
2020-07-26 15:11
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
看下命令的语法使用,我不喜欢将表单转换为PRG

ADD OBJECT [PROTECTED] ObjectName AS ClassName2

坚守VFP最后的阵地
2020-07-26 16:05
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
回复 22楼 吹水佬
PROCEDURE text1.lostfocus
**      thisform.text2.value = thisform.text1.value
        PostMessage(thisform.hWnd, MY_MSG, 0, 0)
 ENDPROC

为什么去掉这,就不行的呢
2020-07-27 00:10
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 27楼 mywisdom88
我这测试正常
与text2都相关的都去掉也未见异常
2020-07-27 07:55
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
PROCEDURE text1.lostfocus
        PostMessage(thisform.hWnd, MY_MSG, 0, 0)
ENDPROC
我测试,只这样,就是不行。
测试时,在text1不要输入任何数据,直接跑到text2去了。
2020-07-27 08:45
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 29楼 mywisdom88
text1无键盘输入时确实如此,同时发现异步消息对控件的刷新重绘有异常
这样试试
        thisform.text1.Refresh
        PostMessage(thisform.hWnd, MY_MSG, 0, 0)
2020-07-27 09:15



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




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

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