以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]怎么判断项目中是否有其他窗口打开? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=118224) |
|
-- 作者:fiendcat -- 发布时间:2018/4/27 12:52:00 -- [求助]怎么判断项目中是否有其他窗口打开? 如题,在关闭一个窗口时,写在afterclose中,怎么判断项目中是否有其他窗口打开?谢谢! |
|
-- 作者:fiendcat -- 发布时间:2018/4/27 14:37:00 -- 求助大神 |
|
-- 作者:有点甜 -- 发布时间:2018/4/27 14:41:00 -- For Each f As WinForm.Form In Forms If f.opened Then msgbox(f.name) End If Next |
|
-- 作者:fiendcat -- 发布时间:2018/4/27 15:29:00 -- 谢谢。不过我放在窗口的afterclose 上,没有消息跳出,是不是不起作用? |
|
-- 作者:fiendcat -- 发布时间:2018/4/27 15:41:00 -- 我刚测试了下,起作用,但是明明窗口开着,也返回false ,是什么原因呢? |
|
-- 作者:有点甜 -- 发布时间:2018/4/27 15:46:00 -- 写下面代码,如果123没有弹出,说明事件不执行,如果窗口名没有弹出,说明没有窗口打开。
msgbox(123) For Each f As WinForm.Form In Forms |
|
-- 作者:fiendcat -- 发布时间:2018/4/27 15:48:00 -- Dim f As WinForm.Form f = Forms("标准作业程序SOP窗口") If f.Opened Then Messagebox.Show("窗口已经打开!") End If 这个就可以跳出提示框 说 窗口已经打开,但是下面代码都是返回false,这是什么原因呢?(我也测试过,f会包含 “标准作业程序SOP窗口”这个窗口)
[此贴子已经被作者于2018/4/27 15:50:02编辑过]
|
|
-- 作者:fiendcat -- 发布时间:2018/4/27 15:49:00 -- 我测试过,代码是执行的 |
|
-- 作者:有点甜 -- 发布时间:2018/4/27 15:54:00 -- 代码绝对不会有问题,请认认真真测试。 |
|
-- 作者:fiendcat -- 发布时间:2018/4/27 15:55:00 -- For Each f As WinForm.Form In Forms If Forms(f.name).opened Then MessageBox.Show("111111") End If Next 这样就可以,奇怪
[此贴子已经被作者于2018/4/27 15:55:24编辑过]
|