以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  想获得容器所在form,应该用什么方法?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=159634)

--  作者:wfkbabro
--  发布时间:2021/1/2 11:25:00
--  想获得容器所在form,应该用什么方法?
大神们,请教一下 想获得容器 所在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编辑过]

--  作者:有点蓝
--  发布时间:2021/1/3 10:58:00
--  
Output.Show(Typeof Forms("窗口1_MAIN").controls("TabControl1").TabPages(1).parent Is C1.Win.C1Command.C1DockingTab)

--  作者:wfkbabro
--  发布时间: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)


--  作者:有点蓝
--  发布时间:2021/1/3 14:25:00
--  

既然知道控件名称,直接使用output.show(Forms("窗口1_MAIN").controls("TabControl1").form.name)即可

特殊一点的如TabPages,只能是另外处理一下
Dim tab As WinForm.TabControl = Forms("窗口1_MAIN").Controls("TabControl1")
output.show(Forms("窗口1").controls(tab.TabPages(0).parent.name).Form.name)

--  作者:wfkbabro
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间:2021/1/3 16:16:00
--  
经验+百度+系统学习一下vb.net