以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 这算不算Bug啊 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=27031) |
||||
-- 作者:atmetmicoo -- 发布时间:2012/12/20 11:22:00 -- 这算不算Bug啊 庞老师,我发现一个奇怪的问题,请帮忙瞧瞧:
窗口A中单击某按钮,click代码为:
Forms("B").open Forms("B").Controls("Button1").performclick() 但是在关闭B窗口之后,会提示 B窗口已经关闭,不能调用Button1控件 ,代码没什么问题,我临时做了个项目试也是这结果,是不是我的安装版本出现问题,案例如下:
此主题相关图片如下:错误提示如下 [此贴子已经被作者于2012-12-20 11:24:39编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2012/12/20 11:28:00 -- 不是bug,窗口关闭了,就不能调用其中的控件了,这是可以理解的。 如果要复用这段代码,你可以做成自定义函数:
http://www.foxtable.com/help/topics/1486.htm
|
||||
-- 作者:atmetmicoo -- 发布时间:2012/12/20 11:30:00 -- 谢谢狐爸的及时回复
问题是我只有点击 A窗口按钮的时候才会运行这个代码才对,为什么我关闭B窗口也要运行A窗口Button1按钮的代码呢? |
||||
-- 作者:atmetmicoo -- 发布时间:2012/12/20 11:34:00 -- 狐爸,补充一下:我昨天在调试的时候,没碰到这个问题,代码没有任何修改,今天重新打开电脑之后就出现这个问题了,不知道您那边打开我这个项目会不会有这个错误提示。 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2012/12/20 11:47:00 -- 以为你A窗口的按钮代码为: Forms("B").open
单击这个按钮首先执行: Forms("B").open 因为B窗口是模式窗口,所以直到关闭B窗口,才会执行第二行代码: Forms("B").Controls("Button1").performclick()
因为此时B窗口已经关闭,所以提示错误。
你将B窗口改为非模式窗口,例如独立窗口,就不会有这个问题。 |
||||
-- 作者:lin_hailun -- 发布时间:2012/12/20 11:59:00 -- 看了一下,因为你的窗口2是模式窗口。 执行流程是这样的。 Forms("窗口2").open() \'在这里暂停,先去处理窗口,窗口关闭以后再执行下面的代码。 Forms("窗口2").Controls("Button1").performclick() |
||||
-- 作者:atmetmicoo -- 发布时间:2012/12/20 12:06:00 -- 谢谢狐爸,林老师
我犯的错误是不了解模式窗口的特性,现在没问题了,好吃午饭了。 |