1、第 8 章Windows应用程序开发进阶 高级窗体控件o 菜单控件、 工具栏控件和状态栏控件o 列表视图控件和树视图控件的使用o 字体、颜色对话框、文件对话框o 多文档界面编程第 8 章Windows应用程序开发进阶 高级窗体控件o 菜单控件、 工具栏控件和状态栏控件o 列表视图控件和树视图控件的使用o 字体、颜色对话框、文件对话框o 多文档界面编程8.1 菜单、工具栏控件和状态栏控件o 菜单、工具栏和状态栏是构成 Windows应用程序的基本元素。Visual Studio 2008的工具箱中引入了一系列后缀为 strip的控件,即 MenuStrip(菜单)、 ToolStrip(工具栏)
2、和StatusStrip(状态栏),其中 MenuStrip类似于普通软件的标准菜单,如 word应用程序的文件编辑等菜单。 ToolStrip是工具栏控件,可以产生带图像的小按钮,类似于 word的工具栏,通常提供菜单项的简便操作。 StatusStrip是状态栏控件,一般位于界面的下方,用于提示用户信息,类似于 Windows操作系统中的状态栏。本节将详细介绍它们的用法。8.1.1 菜单控件的使用o MenuStrip控件是程序的主菜单。通常用来显示程序的各项功能,以方便用户选择执行。通过菜单,用户可以快速地进入需要的界面,因此,在开发 Windows应用程序时,菜单仍然是组织大量选项最常
3、用的方法。使用 MenuStrip控件设计下拉式菜单的步骤如下。o 在 Windows窗体中添加一个 MenuStrip控件。o 单击该控件的 Items属性中的按钮,弹出 “项集合编辑器 ”对话框。o “项集合编辑器 ”对话框中可以添加 MenuItem子项。如果要为已经添加的子项添加子菜单,可以选择 MenuItem子项,单击其 DropDownItems属性后面的按钮,弹出 “项集合编辑器 ”对话框(子项)。o 在 “项集合编辑器 ”(子项)对话框中可以给指定子项添加子菜单,一次类推,即可王城下拉式菜单的设计。o 为了更方便的使用菜单,可通过给菜单项设置快捷键来实现。设置快捷键的方式为:
4、选中菜单项,在 “属性 ”窗口中通过设置ShortcutKeys属性为菜单添加快捷键。o 除了在设计视图中创建和修改菜单、上下文菜单和菜单项的属性,还可以在运行时给菜单或上下文菜单添加菜单项。o 下面示例代码演示在程序中使用代码动态创建菜单的方法。o 01 private void CreateMenu() /自定义方法用来动态创建菜单o 02 o 03 MenuStrip mnu=new MenuStrip(); /创建 MenuStrip对象o 04 ToolStripMenuItem medit=new ToolStripMenuItem (“编辑 “); /创建菜单对象o 05 mnu
5、.Items.Add (medit); /为菜单栏添加主菜单项o 06 ToolStripMenuItem submcopy=new ToolStripMenuItem (“复制 “);/创建菜单对象o 07 /为主菜单添加子菜单项o 08 medit.DropDownItems.Add(submcopy);o 09 this.Controls.Add(mnu); /添加菜单到窗体o 10 o 无论是在设计视图完成菜单设计,还是程序运行时动态添加菜单,都需要给菜单添加相应的功能,设计的菜单才有意义。通常菜单的功能都是通过选择菜单实现的,在菜单项的 Click事件中添加处理程序。双击菜单项即可定
6、位到该菜单的 Click事件代码块中,然后在其中编写具体实现代码。o 如果用户需要编写带历史信息的菜单,即实现保存最近打开文件,可以将在菜单中最近打开文件的文件名和路径保存到事先建立的 *.ini文件中,系统启动时读取其中数据建立数组菜单,即可实现显示历史菜单的功能。8.1.2 快捷菜单o ContextMenuStrip控件是一个快捷菜单,其位置是由鼠标所在的位置决定的。弹出式菜单的结构与下拉式菜单基本相同,区别是该菜单不是固定在窗体上面,而是通过单击鼠标右键来显示的。弹出式菜单的设计过程和下拉式菜单的设计过程基本类似,大家可参阅上节内容学习下拉式菜单的设计。下表列出了ContextMenu
7、Strip类的常用成员及其说明。 下面代码演示了动态添加快捷菜单的方法。o 01 private void CreateContextMenu() /自定义方法用来动态创建快捷菜单o 02 o 03 /创建快捷菜单对象o 04 ContextMenuStrip cmnu = new ContextMenuStrip();o 05 /设置快捷菜单的绘制样式o 06 cmnu.RenderMode = ToolStripRenderMode.System;o 07 /在快捷菜单中添加菜单项o 08 cmnu.Items.Add(“复制 “);o 09 cmnu.Items.Add(“粘贴 “);o
8、 10 cmnu.Items.Add(“剪切 “);o 11 /给窗体添加快捷菜单o 12 this.ContextMenuStrip = cmnu;o 13 8.1.3 工具栏控件的使用o ToolStrip控件是工具栏控件,它为用户提供了应用程序中常用菜单命令的快速访问方式。工具栏通常位于菜单栏的下方,由许多命令按钮组成,每个按钮上都有一个代表该按钮功能的小图标。由于工具栏方便直观,所以它被广泛用于各种应用软件的主界面当中。 ToolStrip控件的项支持 8种不同的类型,还具备可扩展性并拥有高度可配置的属性。o 带下拉菜单的工具栏在其他计算机语言中实现比较复杂,但在.NET中只需将工具栏按钮的类型设置为 DropDownButton。o 具有提示功能的工具栏的创建只需将相应按钮的 ToolTipTile属性设置为提示内容。下表列出了 ToolStrip类的常用成员及其说明。