DotNetBarManager(可拖动控件框管理控件)
DotNetBarManager
生成可在界面拖动的工具框,并可在界面各个角落停靠和隐藏,如菜单,工具栏,上,下左,右的浮动或停靠工具栏
控件结构层次
DockSite:为窗体的分区,一般为7个分区,如上,下,左,右,中间,工具栏和菜单栏位置,无表现形式
Bar:一般一个DockSite会存放一个Bar,但也有可能会拖入多个Bar,表现形式类似多个工具栏,分隔不同的区域
如图:
DockContainerItem:具体容纳显示的控件,一个Bar中可以存放多个DockContainerItem,具体表现形式为一个标签如图:
Bar的重要属性说明:
GrabHandleStyle的几个值
Caption
CaptionDotted
CaptionTaskPane
可形成一个可选择的Combox,来选择不同的Item
可形成一个可选择的Combox,来选择不同的Item
Dotted
从代码动态添加可停靠框
Dim bar As Bar =
New Bar("Bottom Bar in
auto-hide
state")
bar.Name =
"bottomBar"
bar.LayoutType
= eLayoutType.DockContainer ' Dock Container Layout needed
for dockable
windows
bar.Stretch =
True ' Dockable windows
stretch to fill
container
bar.AutoHideAnimationTime
= 0 ' Some controls do not
support animation so turn it
off
bar.GrabHandleStyle
= eGrabHandleStyle.Caption ' Dockable Windows have
captions
DotNetBarManager1.Bars.Add(Bar)
' DotNetBar needs to be aware of the bar so it can manage
it's docking
etc.
Dim dockItem As
DockContainerItem = New
DockContainerItem("bottomDockItem1", "First dock
item")
Bar.Items.Add(dockItem)
dockedControl
= New
UserControl1()
dockedControl.label1.Text
= Bar.Name + " - " +
dockItem.Text
dockedControl.BackColor
=
Color.Aquamarine
dockItem.Control
= dockedControl ' Specify that control is hosted on the dock
container
' Dock bar to bottom dock
site
DotNetBarManager1.BottomDockSite.GetDocumentUIManager().Dock(bar)
dockItem.Height
= 128 ' Specify the height of the
dockable container and at the same time
control
bar.RecalcLayout()
' Apply all layout
changes...
Bar.AutoHide
= True
使用经验:
PanelDockContainer如何显示滚动条?
简单的设置 AutoScrool =
True 是不会自动显示滚动条的,需要同时设置 AutoScrollMinSize为显示滚动条的最小尺寸.
True 是不会自动显示滚动条的,需要同时设置 AutoScrollMinSize为显示滚动条的最小尺寸.
Bar的Caption
无法设置,老是自动变回原来的名称?
如图:在Bar的Text属性里设置会被自动变回原来默认的名字,
需要同时把AutoSyncBarCaption = False 设置后,才能正常显示,不会变掉
拖动到DockContainer里的UserControl老是自动消失?
此时不要做任何变动,或重新从工具栏里拖动消失的控件,也不能进行编译,或运行此时只要关闭此界面编辑器,然后从解决方案中重新打开即可,如果做了,就只能重新拖入用户控件