以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请问如何获得控件所属的SplitContainer控件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=77062)

--  作者:mxm121
--  发布时间:2015/11/10 15:30:00
--  请问如何获得控件所属的SplitContainer控件
如果控件位于SplitContainer(分区面板)的一个页面中,Parent返回此页面,类型为WinForm.SplitPanel

是否有通用的方法能够返回控件所在的容器 类型为WinForm.SplitContainer
[此贴子已经被作者于2015/11/10 15:30:17编辑过]

--  作者:大红袍
--  发布时间:2015/11/10 15:35:00
--  

AfterLoad事件,命名一下

 

Dim sp As WinForm.SplitContainer = e.Form.Controls("SplitContainer1")
sp.Panel1.name = "SplitContainer1_Panel1"
sp.Panel2.name = "SplitContainer1_Panel2"


--  作者:大红袍
--  发布时间:2015/11/10 15:36:00
--  
获取到 WinForm.SplitPanel 后,取其名字
--  作者:mxm121
--  发布时间:2015/11/10 15:42:00
--  
我就是不想去搞SplitContainer的名字 因为挺多的
所以我想根据在SplitContainer内的控件 返回他到底在哪个SplitContainer内

--  作者:大红袍
--  发布时间:2015/11/10 15:43:00
--  
循环不就行了?循环设置。
--  作者:mxm121
--  发布时间:2015/11/10 16:02:00
--  
可以了e.sender.parent.basecontrol.parent.name 就能返回控件所在的splitcontainer名称
--  作者:逛逛
--  发布时间:2015/11/10 16:32:00
--  
For Each a As object In Forms("窗口5").Controls
    If  Typeof a Is WinForm.Panel AndAlso Typeof a.BaseControl Is System.Windows.Forms.SplitterPanel Then
        Output.show( a.BaseControl.Parent.name & ".Panel" & a.TabIndex+1)   
    End If
Next