Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共7 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:用sendkey执行回车命令应该怎么写?

1楼
reachtone 发表于:2009/8/29 9:18:00
在窗口Table的双击事件中,设置以下代码:
If CurrentTable.Current IsNot Nothing Then
    Forms("窗口1").Controls("Button3").Select()
    Sendkeys.Send("{ENTER}")
End If
其目的是,双击后自动执行按钮(Button3)的事件。
但是,这个代码将焦点移动到按钮上以后,并未执行该按钮上的事件。请问正确的代码应该怎么写?
2楼
reachtone 发表于:2009/8/29 9:36:00
总觉得sendkey很奇怪,刚才再试又可以了。
一会好,一会不好,可能是什么原因呢?
3楼
yangming 发表于:2009/8/29 10:40:00
我用sendkey好多次都发现不太管用,所以现在我不用它了
4楼
czy 发表于:2009/8/29 11:42:00
以下是引用reachtone在2009-8-29 9:18:00的发言:
在窗口Table的双击事件中,设置以下代码:
If CurrentTable.Current IsNot Nothing Then
    Forms("窗口1").Controls("Button3").Select()
    Sendkeys.Send("{ENTER}")
End If
其目的是,双击后自动执行按钮(Button3)的事件。
但是,这个代码将焦点移动到按钮上以后,并未执行该按钮上的事件。请问正确的代码应该怎么写?


奇怪,我没发现问题呀。

如果真的不行,可以这样试试:
If CurrentTable.Current IsNot Nothing Then
    Sendkeys.Send("{ENTER}")
    Forms("窗口1").Controls("Button3").Select()
End If

5楼
czy 发表于:2009/8/29 11:44:00
或者这样试试:

If CurrentTable.Current IsNot Nothing Then
    Forms("窗口1").Controls("Button3").Select()
    Application.Doevents
    Sendkeys.Send("{ENTER}")
End If


因我测试不出问题,以上都是瞎蒙的。
6楼
reachtone 发表于:2009/8/29 13:38:00

    sendkey上午的时候,有时管用,有时不管用。刚才再试,怎么试都是正常的。真是晕死了!
    还有就是,请老六在有空的时候,一定要好好考虑一下如何调用现成事件的问题。这个问题我在上个月提过,现在随着项目应用的深入,这个需求越来越迫切!比如,上例中的按钮事件,如果该按钮有模拟单击的方法,就根本用不到sendkey了。除此之外,还有这种情况:
    我在table的keydown事件中设置了事件,如果回车就会将当前行的值取出来填到另外一个表里。现在我想在DoubleClick里也完成同样的功能,难道要将同样的代码再复制过来一遍吗?当然,可以用函数解决,但是,随着功能越来越多,这样的函数也会不断增加,恐怕到最后自己都搞不清哪是哪了。所以,最好的办法是,可以直接模拟执行现成的事件!

7楼
狐狸爸爸 发表于:2009/8/31 8:00:00
给按钮加一个performClick方法算了
共7 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03027 s, 2 queries.