• 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不存在,指抛出异常
        MergeRibbonGroupName:指定此属性以后,将与现有的TagGroup组合在一起,如不存在,则不会抛出任何异常
        MergeRibbonTabItemIndex:指定显示的位置,如果不指定,则为-1
        RibbonTabText:混合以后,显示的RibbonTab的抬头,如果与原有Tab混合在一起,则不会显示
        

    状态栏的混合

        主要使用控件Bar来实现,控件Bar并不能像RibbonControl一样,配合RibbonBarMergeContainer一样进行自动混合,但可以通过控件提供的Items.AddRange来实现控件的添加,Items.RemoveRange来实现控件的移除
    混合:
            '把混合窗体中的状态栏内的控件收集到列表中
            Dim pBaseItem As New 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
        状态栏的混合方式,也可以用来操作其他工具栏的混合,如侧边栏和工具栏.
     
        
  • 相关阅读:
    Spring IOC容器基于配置文件装配Bean(5) ------通过工厂方法配置bean
    Spring IOC容器基于配置文件装配Bean(4) ------bean生命周期
    Spring IOC容器基于配置文件装配Bean(3) ------装配集合属性
    Spring IOC容器基于配置文件装配Bean(2) ------通过setter或构造方法注入
    Spring IOC容器基于配置文件装配Bean(1) ------设置autowire自动装配
    Java实现序列化的作用和目的
    静态语言与动态语言
    C# WinForm 界面控件
    C# 中类与继承等概念
    C# 中的函数与方法
  • 原文地址:https://www.cnblogs.com/wene/p/3115168.html
Copyright © 2020-2023  润新知