以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=45202) |
-- 作者:yld -- 发布时间:2014/1/18 9:57:00 -- [求助] 如何获取指定窗口的所有控件名?我的代码有何问题,请指教。 For Each ctl As WinForm.Control In Forms("窗口1").Controls MessageBox.Show(ctl.name) next 谢谢!
|
-- 作者:Bin -- 发布时间:2014/1/18 9:59:00 -- 代码有什么问题? 没问题啊? |
-- 作者:yld -- 发布时间:2014/1/18 10:02:00 -- 但出错了。 |
-- 作者:Bin -- 发布时间:2014/1/18 10:12:00 -- 出什么错? |
-- 作者:Bin -- 发布时间:2014/1/18 10:14:00 -- 如果你是在命令窗口,或者其他任何非本窗口的地方运行,你要确保窗口处于打开状态,否则是获取不到的,是会报错的. 如果希望不报错,加个判断,判断一下窗口处于打开状态再执行即可. if Forms("窗口1").Opened then For Each ctl As WinForm.Control In Forms("窗口1").Controls MessageBox.Show(ctl.name) next end if |
-- 作者:yld -- 发布时间:2014/1/18 10:17:00 -- 大概意思是,没有指定控件类型,如是本窗口( e.Form.Controls )就可以。 |
-- 作者:Bin -- 发布时间:2014/1/18 10:19:00 -- 上例子,没有道理哦. 弹出控件名是不需要指定控件类型的. |
-- 作者:Bin -- 发布时间:2014/1/18 10:19:00 -- 而且我测试过代码也没有问题. |
-- 作者:yld -- 发布时间:2014/1/18 10:35:00 -- 如果我要的是没有打开的窗口中的控件呢? |
-- 作者:Bin -- 发布时间:2014/1/18 10:36:00 -- 没办法获取未打开的窗口的控件名,其他相关请看5楼. |