Foxtable(狐表)用户栏目专家坐堂 → 想获得容器所在form,应该用什么方法?


  共有2848人关注过本帖树形打印复制链接

主题:想获得容器所在form,应该用什么方法?

帅哥哟,离线,有人找我吗?
wfkbabro
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:269 积分:2425 威望:0 精华:0 注册:2011/10/21 17:07:00
想获得容器所在form,应该用什么方法?  发帖心情 Post By:2021/1/2 11:25:00 [显示全部帖子]

大神们,请教一下 想获得容器 所在form,应该用什么方法?
容器是函数的一个传入参数,是不固定的,可能是各层级的控件、或容器、或容器

容器是: Forms("窗口1_MAIN").controls("TabControl1").TabPages(1)
目前 想用Parent 的  Typeof OBJ is来判断是否 form,但不知道  is 后写什么。
也想用 Forms("窗口1_MAIN").controls("TabControl1").TabPages(1).controls(0).form ,但没试成功。

[此贴子已经被作者于2021/1/2 11:24:45编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
wfkbabro
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:269 积分:2425 威望:0 精华:0 注册:2011/10/21 17:07:00
  发帖心情 Post By:2021/1/3 13:34:00 [显示全部帖子]

谢谢蓝版,向上1级parent是 TabControl1,再上一级是 form,在用递归判断是form则中止而得到forms(..),

这应该用什么is ? 如果自己想百度,应该怎么搜索能得到类似于“C1.Win.C1Command.C1DockingTab”的知识,感谢。

output.show(Forms("窗口1_MAIN").controls("TabControl1").TabPages(1).parent.parent.name)


 回到顶部
帅哥哟,离线,有人找我吗?
wfkbabro
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:269 积分:2425 威望:0 精华:0 注册:2011/10/21 17:07:00
  发帖心情 Post By:2021/1/3 15:59:00 [显示全部帖子]

谢谢蓝版。 针对某些层级的容器或控件,.form是失效的。

比如这个会报错:output.show(Forms("窗口1_MAIN").controls("TabControl1").TabPages(1).Form.name)      =>未找到类型"TabPage"的公共成员"Form"

而您也给出了针对这些特殊情况的处理方法(如上楼),谢谢。 

 

尝试用 

     ' output.show(Forms("窗口1_MAIN").controls("TabControl1").TabPages(1).parent.parent.name)
     ' Output.Show( Forms("窗口1_MAIN").controls("TabControl1").TabPages(1).parent.parent.Gettype().fullname)
     ' output.show(Forms("窗口1_MAIN").controls("TabControl1").parent.name)
     ' Output.Show( Forms("窗口1_MAIN").controls("TabControl1").parent.Gettype().fullname)

得到的窗口名相同,但类型完全不一样:

     ' 窗口1_MAIN
     ' Foxtable.FormPanel
     ' 窗口1_MAIN
     ' Foxtable.WinForm.Form

 

所以想学习一下怎么去查类似的参考,感觉foxtable很多细节需要自己去学习:)

[此贴子已经被作者于2021/1/3 16:00:05编辑过]

 回到顶部