DotNet · 2022年3月11日

DotNetBar中Merge窗体的使用

工具栏的混合(merge)
    主要依靠一个控件RibbonBarMergeContainer来实现,虽然可以通过调用RibbonControl控件的创建功能(CreateRibbonTab)来动态的创建,但显然没有命名用RibbonBarMergeContainer来得高效和方便

    如果混合窗体和被混合窗体属于父子级关系,则RibbonBarMergeContainer会自动把子窗体中定义好的RibbonBar混合到父窗体中
    如果混合窗体和被混合窗体不属于父子级关系,则需要手动调用RibbonBarMergeContainer.MergeRibbonBars来混合工具栏,程序员要作的就是把混合窗体中定义好的RibbonBarMergeContainer控件传递给被混合窗体,由被混合窗体进行调用如:

        Dim f As
ChildForm1 = New
ChildForm1()
        f.Show()
        f.ribbonBarMergeContainer1.MergeRibbonBars(Me.ribbonControl1)
        Me.ribbonControl1.Refresh()

 

几个主要属性的说明

    MergeIntoRibbonTabItemName:指定此属性以后,将与现有指定名称的Tab混合在一起,如指定名称的RibbonTab不存在,指抛出异常
        此处要留意,系统混合生成的TabItemName会加入混合源的窗体名称,如:”FMTMLNGMain.xMergeContainerView”,所以在确定要混合入目标RibbonTabItem的话,要留意源窗体的名称。在指定此属性时,一并加入
    MergeRibbonGroupName:指定此属性以后,将与现有的TagGroup组合在一起,如不存在,则不会抛出任何异常
    MergeRibbonTabItemIndex:指定显示的位置,如果不指定,则为-1
    RibbonTabText:混合以后,显示的RibbonTab的抬头,如果与原有Tab混合在一起,则不会显示
    

状态栏的混合

    主要使用控件Bar来实现,控件Bar并不能像RibbonControl一样,配合RibbonBarMergeContainer一样进行自动混合,但可以通过控件提供的Items.AddRange来实现控件的添加,Items.RemoveRange来实现控件的移除
混合:

        '把混合窗体中的状态栏内的控件收集到列表中
        Dim pBaseItem AsNew
System.Collections.Generic.List(Of
BaseItem)
        Dim
pEnumer As IEnumerator =
f.BarChild.Items.GetEnumerator()
        While
pEnumer.MoveNext()
            pBaseItem.Add(TryCast(pEnumer.Current,
BaseItem))
        End
While
        '加到被混合窗体的状态栏中
        Me.Bar1.Items.AddRange(pBaseItem.ToArray())
        '把混合好的工具栏列表存储起来,方便下次清除
        _barContainerCache.Add(f.Name,
pBaseItem)
        '刷新
        Bar1.Refresh()

清除:

        If (_barContainerCache.ContainsKey(pContainer))
Then
            Me.Bar1.Items.RemoveRange(_barContainerCache(pContainer).ToArray())
            _barContainerCache.Remove(pContainer)
            Bar1.Refresh()
        End If

    状态栏的混合方式,也可以用来操作其他工具栏的混合,如侧边栏和工具栏.
 
    

最新电影,电视剧,尽在午夜剧场

电影电视剧午夜不寂寞