以文本方式查看主题

-  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=158124)

--  作者:chnfo
--  发布时间:2020/11/9 11:35:00
--  [求助]splitcontainer左右展开
Splitcontainer能不能点击分隔线,就把右边的panel收起来,再点一下,又展开来。但不是collapsed,因为叠起来就看不见分隔条了
--  作者:有点蓝
--  发布时间:2020/11/9 11:45:00
--  
有点麻烦,要自行改造这个控件,用起来有点麻烦,参考:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=83709
--  作者:chnfo
--  发布时间:2020/11/9 14:14:00
--  
试了下,可以用。小问题一个:如何把这个自定义的splitformex放到某个控件里?例如:e.form.controls(“splitcontainer1”).panel2.controls.add(自定义的控件)。上面这样报错了,提示未找到类型splitpanel的公共成员controls
[此贴子已经被作者于2020/11/9 14:15:57编辑过]

--  作者:有点蓝
--  发布时间:2020/11/9 14:15:00
--  
贴出完整代码
--  作者:chnfo
--  发布时间:2020/11/9 14:19:00
--  
窗口afterload事件

Dim sp As New SplitFormEx   \'已经在全局代码里定义了public MainSplitFormEx 
MainSplitFormEx = sp
sp.Dock = 5
sp.FixedPanel = 1   \'尺寸变化时,Panel保持不动
sp.SplitterDistance = 300  \'分隔条的初始位置

e.Form.Controls("SplitContainer1").panel2.Controls.Add(sp)  ‘如果直接用e.Form.Panel.Controls.Add(sp)又没问题


sp.panel1.Controls.Add(e.Form.Controls("Table1").BaseControl)
e.Form.Controls("Table1").Dock = 5

sp.panel2.Controls.Add(e.Form.Controls("Table2").BaseControl)
e.Form.Controls("Table2").Dock = 5

下面是从那个示例中直接拷出来的

Public MainSplitFormEx As SplitFormEx   \'主窗口中的分割面板

 

Public ColorSplitterStandard As Color = Color.White

Public ColorSplitterActivation As Color = Color.Black

Public ColorSplitterBack As Color = Color.LightGray

 

 

\'\'\' 这是一个用于窗口的分割器面板,继承SplitContainer

    \'\'\' 能执行分区面板的收缩

    \'\'\' 主要体现窗口分割的条的颜色

    Public Class SplitFormEx

        Inherits System.Windows.Forms.SplitContainer

[此贴子已经被作者于2020/11/9 14:21:41编辑过]

--  作者:有点蓝
--  发布时间:2020/11/9 14:34:00
--  
e.Form.Controls("SplitContainer1").basecontrol.Panel2.Controls.Add(sp)
--  作者:chnfo
--  发布时间:2020/11/9 14:41:00
--  
解决大问题了。感谢。
要是能把它直接集成到FT中就好啦。这个还是挺有用的

--  作者:chnfo
--  发布时间:2020/11/9 15:00:00
--  
解决大问题了。感谢。
要是能把它直接集成到FT中就好啦。这个还是挺有用的

--  作者:chnfo
--  发布时间:2020/11/26 15:49:00
--  
如果我想让这个上下布局,好像没这个参数啊。似乎只能左右
[此贴子已经被作者于2020/11/26 15:50:12编辑过]

--  作者:有点蓝
--  发布时间:2020/11/26 16:19:00
--  
Dim sp As WinForm.SplitContainer = Forms("窗口4").Controls("SplitContainer1")
sp.Orientation = 0