注册 登录
编程论坛 VFP论坛

咨询VFP9中如何模拟COMBOX控件右侧下拉按钮被按下

shschy 发布于 2023-06-29 06:49, 879 次点击
VFP窗口操作展示过程需要自动演示
希望能模拟鼠标操作,展示某combox控件右侧下拉按钮被按下,将combox的rousource内容都展示出来


WAIT WINDOW "" TIMEOUT 0.2
&& 求 右侧下拉按钮按下 代码 (click和downclick都是无效的)
WAIT WINDOW "" TIMEOUT 0.2

9 回复
#2
csyx2023-06-29 07:24
Keyboard '{F4}' 或者 Keyboard '{ALT+DNARROW}'
#3
shschy2023-06-29 09:21
回复 2楼 csyx 这两个代码单独结尾时有效,但后面有其它代码就无效
控件command1.click (执行有效)
thisform.text_zh.DownClick
WAIT windows "下面 执行 thisform.text_zh.Click" nowait
thisform.text_zh.Click
WAIT windows "下面 执行 Keyboard '{F4}' 或者 Keyboard '{ALT+DNARROW}'" nowait
thisform.text_zh.setFocus
KEYBOARD "{F4}"
只有本站会员才能查看附件,请 登录


但后面有其它代码后,就不会展示下拉控件显示rowsource 部分内容的效果

控件command2.click (执行无效)
thisform.text_zh.setfocus
KEYBOARD "{F4}"
*
=INKEY(5) &&延时5秒
WAIT WINDOW "..." TIMEOUT 5.2
thisform.text_zh.Value="newtest"
#4
csyx2023-06-29 09:31
晕死,这不废话嘛,inkey、wait 这些语句都要读键盘输入,F4 放它们前面还轮得到下拉框读取?
#5
shschy2023-06-29 11:31
回复 4楼 csyx 谢谢提醒,已屏蔽keyboard()和wait语句,现在需要收起下拉菜单
已修改,请再指点一下,如何收起combox控件的下拉菜单,第二次执行 KEYBOARD "{F4}" 后界面无变化
thisform.text_zh.DownClick
WAIT windows "下面 执行 thisform.text_zh.Click" nowait
thisform.text_zh.Click
WAIT windows "下面 执行 Keyboard '{F4}' 或者 Keyboard '{ALT+DNARROW}'" nowait
thisform.text_zh.setFocus
KEYBOARD "{F4}"
&& WAIT windows "开始循环延时5秒" nowait
k=1
l=1
a_time=TTOC(DATETIME())
FOR i=1 TO 50000  
    k=k+1
    l=1
    m=1
    FOR l=1 TO 1000
        m=m+1
    endfor   
endfor   
b_time=TTOC(DATETIME())      
KEYBOARD "{F4}"
thisform.text_zh.value="newtest"
&& MESSAGEBOX(a_time+CHR(13)+b_time)
thisform.text_zh.setFocus
#6
shschy2023-06-29 11:34
需要按钮实现效果是:combox下拉菜单打开显示3-5秒,combox控件赋值显示,再等待3-5秒,combox控件下拉菜单收回,类似演示效果。谢谢!
#7
csyx2023-06-29 11:41
用计时器
#8
吹水佬2023-06-29 12:52
如果可以的话,最好不要用combbox,自己封装一个带列表的类好操作点。
#9
厨师王德榜2023-06-29 14:47
用2个 Timer控件可做 ,
一个Timer负责当"卷帘大将" ,
另一个Timer负责每隔几秒指挥"卷帘大将" 干活,
只有本站会员才能查看附件,请 登录

另外,吹版的意见是对的,这种适合自己封装一个类.

[此贴子已经被作者于2023-6-29 15:06编辑过]

#10
shschy2023-07-03 11:24
谢谢大家!我这里为了方便,采取代码修改combox控件坐标,将其left值改为很大,移出窗口。
我这里遇到以下问题,
1)Keyboard '{F4}'有效,但 Keyboard '{ALT+DNARROW}'会在combox控件中显示乱码,不知为了么。人工操作ALT+向下箭头,可以达到combox下拉菜单打开收回。
2)我曾经尝试combox.visible=.f.,但发现combox控件不见了,combox打开的下拉菜单缺会继续显示。所以采取修改left值来隐藏。
谢谢版主,谢谢各位。
1