Merge窗体的制作
2013-06-03 12:41
218 查看
工具栏的混合(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
状态栏的混合方式,也可以用来操作其他工具栏的混合,如侧边栏和工具栏.
相关文章推荐
- 用C#制作 个性化窗体 winform 界面
- C#制作MDI窗体
- 如何制作透明窗体
- 特殊类型窗体制作: 用C#实现启动欢迎界面
- C# 制作不规则窗体的两种解决方案
- C# 透明窗体制作方法
- C#WinForm制作异形窗体/控件-.NET教程,C#语言
- Java Swing中的透明窗体(Windows中消息提示框的制作)
- C# 无边框异型窗体制作
- C# winform中不规则窗体制作的解决方案(已经解决24位色以上不能正常显示问题)
- 使用Visual C#制作可伸缩个性化窗体
- 使用javascript制作窗体弹出在当前内容的中间
- VB.NET制作特效窗体
- 制作没有边框的窗体,并可移动
- 用Borland C# Builder制作不规则窗体
- C# WinForm窗体中制作滚动的字幕
- 用C#制作 个性化窗体 winform 界面
- 特殊类型窗体制作: 实现类似 QQ 的程序界面
- WPF制作不规则的窗体
- 程序启动欢迎窗体(Splash) 制作方法