以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp)
-- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5)
---- 能不能通过DynamicWrapper打开关闭金字塔框架? (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=157811)
|
-- 作者:lyh27557496
-- 发布时间:2017/9/12 9:22:50
-- 能不能通过DynamicWrapper打开关闭金字塔框架?
http://www.weistock.com/bbs/dispbbs.asp?BoardID=5&replyID=434963&ID=149886&skin=1
如上面帖子据说,使用Application.SendMessage(57602)来关闭框架经常会无缘无故中断,如果这个问题无法解决,那能不能通过DynamicWrapper来打开或关闭框架?
或者用Application.SendMessage可以打开框架,用来代替ActivateFrame?
|
-- 作者:yukizzc
-- 发布时间:2017/9/12 10:01:22
--
可以用frame框架对象下的
Close 关闭当前打开的该框架
|
-- 作者:lyh27557496
-- 发布时间:2017/9/12 10:09:51
--
但是close在for循环里是先打开所有框架后,才一个一个关闭的,不是打开1个关闭1个的,是我的用法有问题吗?
|
-- 作者:无为剑
-- 发布时间:2017/9/12 10:13:38
--
示例代码你贴一下
|
-- 作者:lyh27557496
-- 发布时间:2017/9/12 10:20:53
--
sub test()
arr = Array("f1", "f2")
N = UBound(arr) + 1
for i = 0 to N - 1
set f = Application.ActivateFrame(arr(i))
f.close
next
end sub
我的本意是希望打开f1后就关闭f1,接着再打开f2再关闭f2。
但是上面的代码结果是先打开f1、f2,再关闭f1,再关闭f2。
|
-- 作者:lyh27557496
-- 发布时间:2017/9/12 10:24:01
--
此主题相关图片如下:屏幕快照 2017-09-12 上午10.22.05.png
我的本意是希望打开f1后就关闭f1,接着再打开f2再关闭f2。
但是上面的代码结果是先打开f1、f2,再关闭f1,再关闭f2。
|
-- 作者:lyh27557496
-- 发布时间:2017/9/12 10:28:59
--
我在f.close前面增加了msgbox arr(i),结果是先打开f1,弹出对话框,按确定后打开了f2,同时关闭了f1,弹出下一个对话框。
感觉是窗口焦点的问题。
|
-- 作者:yukizzc
-- 发布时间:2017/9/12 10:33:44
--
call Technic.Close call ReportPro.close
你这样就能直接关闭两个框架
|
-- 作者:lyh27557496
-- 发布时间:2017/9/12 10:40:05
--
这样一个一个关闭代码要写很多行,我想用在多框架循环里面。
刚刚试了下在set f = Application.ActivateFrame(arr(i))前面增加一行Application.PeekAndPump即可实现循环逐个关闭框架了。谢谢了
|
-- 作者:lyh27557496
-- 发布时间:2017/9/12 10:57:42
--
如果要关闭自定义的框架名,比如f1,代码要怎么写呢?
|