第9章 使用菜单、工具栏和对话框
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第9章使用菜单、工具栏和对话框
学习目标:
学会使用MenuStrip控件创建菜单
掌握菜单属性和菜单事件的处理方法
学会使用工具栏,并添加按钮实现常见功能
掌握各种通用对话框的使用方法
学会设计应用程序的打印功能
了解MDI应用程序的特点和管理机制
9.1 使用菜单
菜单被大量用于Windows应用程序中,它以非常友好的方式向用户提供了各种命令。在大多数Windows应用程序中,主要存在以下两类菜单。
主菜单:出现在用户界面的顶部,通常包含顶级菜单,如文件、编辑、帮助等。
弹出菜单:当用户在用户界面的某个位置右击时出现的菜单,弹出菜单中的命令通常和用户右击的应用程序或环境有关。
在VS 2005中,窗体设计器支持在设计用户界面时对菜单和菜单项进行创建和编辑,方法与控件相似:利用工具箱在窗体上绘制菜单,然后在属性窗口中设置菜单属性,最后编写菜单的事件处理程序。和其他对象一样,每个菜单都对应着类的一个实例,主菜单和弹出菜单都对应着从System.Windows.Forms.Menu抽象类继承的类,主菜单对应MenuStrip类,而弹出菜单对应ContextMenuStrip类。所有的菜单都包含一个MenuItem对象集,它们和菜单中的各个选项对应。
9.1.1 菜单的设计原则和样式
在大多数Windows应用程序中,菜单栏都出现在相同的位置,而且其中各个菜单的内容是可以预测的。应用程序的用户界面上通常都提供了一个【编辑】菜单,包含【剪切】、【复制】、【粘贴】、【查找】等命令。菜单栏上通常还有一些应用程序特有的菜单,单根据约定,菜单栏的最后一个菜单一般都是【帮助】,用户通过该菜单来获取帮助信息和“关于”信息(版权和许可信息等)。
对于一个设计良好的应用程序,大多数菜单都是可以预测的,它们具有以下特点,这确保了用户能够很快熟悉并开始使用应用
程序。
主菜单一般都不超过9个,以免显得多而杂乱,且菜单嵌套不超过3级;
菜单都是按照系统的功能来组织的;
菜单树广而浅,而不是窄而深;
菜单都是根据菜单选项的含义来分组的,并且具有一定的规则;
菜单的标题简短、含义明确,通常以关键词开始;
对于常用的菜单命令都设置有快捷键。
9.1.2 创建主菜单
在VS 2005中,通过工具箱的MenuStrip控件,可以轻松地在窗体中创建主菜单,在标有“请在此处键入”的地方输入名称便可以添加菜单选项,VS 2005会在刚才添加选项的下方和右侧添加新的菜单选项。和其他控件一样,可以利用属性窗口来设置菜单的各种属性。
9.1.3 创建弹出菜单
弹出菜单又称为上下文菜单或关联菜单,这是因为这类菜单是与具体的操作环境和控件紧密相连的,右击不同的控件,将会弹出不同的菜单,显示不同的菜单命令。
9.2 使用工具栏
工具栏为Windows用户提供了一种使用常见功能或工具的方法,工具栏中包含多个按钮,每个按钮上面通常都带有图标,它们形象说明了该按钮所能完成的功能。除了按钮以外,工具栏上有时还会有组合框和文本框。如果把鼠标停留在工具栏的某个按钮上,就会显示一个提示信息,给出该按钮的使用方法,这对于只包含图标,而没有文本的按钮是十分有用的。
尽管工具栏一般都位于窗体的顶端、底端或两侧,但在很多
情况下用户都可以对它们进行移动,以放置到用户更容易使用的地方。在比较复杂的应用程序中,用户甚至可以设置哪些按钮和工具出现在工具栏中。
9.2.1 创建工具栏
弹出菜单又称为上下文菜单或关联菜单,这是因为这类菜单是与具体的操作环境和控件紧密相连的,右击不同的控件,将会弹出不同的菜单,显示不同的菜单命令。
通过ToolBar控件可以在窗体中创建工具栏,第一次将ToolBar控件放置到窗体上时,它看起来非常类似于MenuStrip控件。但它们之间存在以下两个区别:ToolBar的最左边有4个垂直排列的点,这与Word中的工具栏相同,这些点表示工具栏可以移动,也可以停靠在父应用程序窗体中。另外一个区别就是,在默认情况下,工具栏显示的是图像,而不是文本。
从工具栏的下拉菜单中可以选择控件类型:
ToolStripButton(Button):该控件表示一个按钮,可用于向工具栏中添加带文本或不带文本的按钮。
ToolStripLabel(Label):该控件表示一个标签。此外,该控件还可以显示图像,也就是说,这个控件可用于显示一个静态图像,放在不显示其本身信息的另一个控件上面,例如文本框或组合框。ToolStripSplitButton(SplitButton):该控件表示一个右端带有下拉按钮的按钮,如果单击该下拉按钮,就会打开一系列按钮,如果只单击按钮,则下拉按钮不会被打开。ToolStripDropDownButton(DropDownButton):该控件非常类似于ToolStripSplitButton,唯一的区别在于打开的不是下拉按钮,而是下拉图像,单击控件的任何一部分,都会打开其下拉选项。ToolStripSeparator(Separator):该控件表示水平或垂直分隔符。ToolStripComoBox(ComoBox):该控件表示一个下拉列表框。ToolStripTextBox(TextBox):该控件表示一个文本框。ToolStripProgressBar(ProgressBar):该控件表示一个进度条。
9.2.2 显示和隐藏工具栏
很多复杂的应用程序都提供了多个工具栏,例如Word。用户可以根据实际需要来显示或隐藏其中的一些工具栏,这主要通过【视图】|【工具栏】下的命令来实现。选择一个命令,如果对应的工具栏是隐藏的,则显示它,如果已经显示,则隐藏它。显示的工具栏通常在工具栏对应的菜单命令前面有选中标记。
9.3 使用通用对话框
在Windows应用程序中,打开和保存文件、访问打印机、选择字体和颜色都是最基本的功能。对于设计人员而言,不需要自己创建定制的对话框来实现上述功能,.NET Framework提供了与这些Windows对话框相关的类,设计者可以直接使用它们,这极