.NET Windows编程系列(7):.NET菜单、工具栏、状态栏编程

.NET Windows编程系列(7):.NET菜单、工具栏、状态栏编程


摘要:

菜单、工具栏、状态栏是所有Windows编程当中非常重要的一个技术,在本节详细介绍在Visual Studio2005中如何实现菜单、工具栏、状态栏编程技术。

注:本系列节选自MSDN Webcasts上邵志东老师的《 .NET Windows编程系列课程》PPT内容,在我的Blog中整理发表,方便大家一同参考!此系列相关资料请到这里下载。

本节主要内容:

MenuStrip、ContextMenuStrip、ToolStrip和StatusStrip概述

多文档窗口和MenuStrip合并

XML驱动菜单

一、概述

MenuStrip

MenuStrip控件是.NET2.0的新功能。使用该控件,可以轻松创建Microsoft Office 中那样的菜单。
MenuStrip控件支持多文档界面(MDI) 和菜单合并、工具提示和溢出。您可以通过添加访问键、快捷键、选中标记、图像和分隔条,来增强菜单的可用性和可读性。
MenuStrip控件取代了MainMenu控件并向其中添加了功能;但是也可选择保留MainMenu控件以备向后兼容和将来使用。

ContextMenuStrip

快捷菜单(也称为上下文菜单)在用户单击鼠标右键时会出现在鼠标位置。快捷菜单在鼠标指针位置提供了工作区或控件的选项。
ContextMenuStrip控件替换ContextMenu控件并向其添加功能;但是也可选择保留ContextMenu控件以备向后兼容和将来使用。
ContextMenuStrip和MenuStrip都是ToolStripMenuItem、ToolStripComboBox、ToolStripSeparator和ToolStripTextBox对象的容器。

ToolStrip

使用ToolStrip控件可以:
创建易于自定义的常用工具栏,让这些工具栏支持高级用户界面和布局功能,如停靠、漂浮、带文本和图像的按钮、下拉按钮和控件、“溢出”按钮和ToolStrip项的运行时重新排序。
支持操作系统的典型外观和行为。
对所有容器和包含的项进行事件的一致性处理,处理方式与其他控件的事件相同。
将项从一个ToolStrip拖到另一个ToolStrip内。
使用ToolStripDropDown中的高级布局创建下拉控件及用户界面类型编辑器。

StatusStrip

Windows 窗体StatusStrip控件在窗体中作为一个区域使用,此区域通常显示在窗口底部,应用程序可以在这里显示各种状态信息。
StatusStrip控件上通常有ToolStripStatusLabel控件,用于显示指示状态的文本或图标,或者有可以用图形显示进程完成状态的ToolStripProgressBar。
DEMO1:菜单、工具栏、状态栏的添加和属性设置
DEMO2:简易写字板的实现

二、多文档窗口和MenuStrip合并

多文档窗口

多文档界面(MDI) 应用程序使您能同时显示多个文档,每个文档显示在各自的窗口中。
MDI 应用程序中常有包含子菜单的“窗口”菜单项,用于在窗口或文档之间进行切换。
多文档界面(MDI) 应用程序的基础是MDI 父窗体。它是包含MDI 子窗口的窗体。
MDI 子窗体是多文档界面(MDI) 应用程序的必要元素,因为这些窗体是用户交互的中心。

多文档窗口的创建

父窗口:将IsMDIContainer属性设置为“true”。这将该窗体指定为子窗口的MDI 容器。
子窗口:在父窗口中调用子窗口。”newMDIChild.MdiParent = this; newMDIChild.Show(); ”
活动窗体:父窗体的ActiveMdiChild属性
活动控件:子窗体的ActiveControl。可在MDI 父窗体中使用LayoutMdi方法和MdiLayout枚举重新排列子窗体。
DEMO3:MDI窗口的实现

MenuStrip合并

MenuStrip的AllowMerge属性设置为true;

MergeAction属性

  • Append:该项追加到集合结尾。(默认)
  • Insert:将该项插入目标集合中的匹配项前。
  • MatchOnly:要求匹配项,但不进行任何操作。(相同菜单合并时设置)
  • Remove:移除匹配项。
  • Replace:用源项替换匹配项。原始项的下拉项不会成为传入项的子项。
  • MergeIndex:决定相同菜单合并后各个项的先后顺序

DEMO4:多文档写字板的实现

三、XML驱动菜单

扩展MenuStrip

XML文档中可以很好地描述菜单项
可以从XML文档导入菜单项
涉及到XML文件读写知识
涉及到菜单项的动态添加(通过编程方式添加菜单项)
DEMO5:可以导入XML文件的MenuStrip的实现

 

本系列文章快速导航:

posted @ 2007-10-25 19:14 李永京 阅读(1373) 评论(0)  编辑 收藏 所属分类: WinForm