编程基础第9章界面设计_第1页
编程基础第9章界面设计_第2页
编程基础第9章界面设计_第3页
编程基础第9章界面设计_第4页
编程基础第9章界面设计_第5页
已阅读5页,还剩37页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Visual C#.NET程序设计实用教程程序设计实用教程 内容简介界面设计是Windows应用程序的重要环节,直接影响程序的外观效果和可操作性。本章主要介绍下拉式菜单、弹出式菜单、工具栏、状态栏等,与界面设计密切相关的控件以及多文档界面程序的设计。目录9.1 菜单、工具栏与状态栏菜单、工具栏与状态栏9.2 对话框对话框9.3 多文档操作多文档操作本章小结本章小结 9.1 菜单、工具栏与状态栏 菜单、工具栏和状态栏是用户界面的重要组菜单、工具栏和状态栏是用户界面的重要组成部分,向用户展示了一个程序的大致功能和成部分,向用户展示了一个程序的大致功能和风格。风格。 除了极其简单的应用程序外,大部分

2、用应用除了极其简单的应用程序外,大部分用应用程序都在窗口程序都在窗口顶部顶部提供一个方便用户与应用程提供一个方便用户与应用程序进行交互的序进行交互的菜单栏和工具栏菜单栏和工具栏,在窗口,在窗口底部底部提提供一个显示程序信息的供一个显示程序信息的状态栏状态栏。9.1.1 菜单 菜单是用户界面极其重要的组成部分,编程人员可以根据需要定制各种风格的菜单。菜单按使用方式有下拉式菜单和弹出式菜单两种。 菜单的设计主要涉及三个类:ContextMenuStrip、MenuStrip和ToolStripMenuItem,它们分别封装了对弹出式菜单、下拉式菜单及菜单项的定义。1下拉式菜单下拉式菜单 MenuS

3、trip(菜单栏)控件用于创建下拉式菜单。下拉式菜单,也称主菜单、菜单栏,一般位于窗口的顶部,由多个菜单项组成。每个菜单项可以是应用程序的一条命令,也可以是其他子菜单项的父菜单。9.1.1 菜单1下拉式菜单下拉式菜单(1) 设计菜单的常用操作设计菜单的常用操作 创建菜单栏。 工具箱中双击MenuStrip控件即可创建菜单栏,但控件本身并不存在于窗体之上,而是在窗体设计器下方的组件区中。单击组件区中的MenuStrip控件,将会在窗体的标题栏下面看到文本“请在此处键入”。 第一个创建的MenuStrip控件,会自动通过窗体的MainMenuStrip属性绑定到当前窗体,成为其主菜单栏。 提示:提

4、示:MenuStrip控件只是一个容纳菜单项的容器,本身没有常用的事件和方法,较常用的属性是Items,可以通过项集合编辑器对菜单项进行管理,如添加或删除菜单项、调整菜单项的次序等。菜单栏的具体功能由各个菜单项实现,所以主要使用菜单项的属性、方法和事件。9.1.1 菜单1下拉式菜单下拉式菜单(1) 设计菜单的常用操作设计菜单的常用操作 创建菜单项。 菜 单 栏 由 多 个 菜 单 项 组 成 , 选 中 组 件 区 中 的MenuStrip控件,在窗体标题栏下面的“请在此处键入”文本处单击并键入菜单项的名称(如“文件”),将创建一个菜单项,其Text 属性由键入的文本指定。 此时,在该菜单项的

5、下方和右方分别显示一个标注为“请在此键入”区域,可以选择区域继续添加菜单项。1下拉式菜单下拉式菜单(1) 设计菜单的常用操作设计菜单的常用操作 创建菜单项之间的分隔符。常用方法有四种,如下: 方法1:把鼠标移动到“请在此键入”区域,会发现该区域的右侧出现一个下拉箭头,单击该箭头,会出现一个下拉列表,如图10.2所示。单击“Separator”,则该菜单项被创建为一个分隔符。 方法2:直接在“请在此键入”区域输入“-”,则该菜单项被创建为一个分隔符。 方法3:单击“请在此键入”区域,在属性窗口设置其Text属性为“-”,则该菜单项被创建为一个分隔符。 方法4:如果要在某个菜单项之前插入分隔符,在

6、该菜单项上单击鼠标右键,在弹出的快捷菜单中选择“插入|Separator”命令,即可将一个分隔符插入到当前菜单项的上方。9.1.1 菜单9.1.1 菜单1下拉式菜单下拉式菜单(1) 设计菜单的常用操作设计菜单的常用操作 创建菜单项的访问键。 可以在菜单项名称中的某个字母前加“&”,将该字母作为该菜单项的访问键。例如,输入菜单项名称为“文件(&F)”,F就被设置为该菜单项的访问键,这一字符会自动加上一条下划线。程序运行时,按Alt+F就相当于单击“文件”菜单项。 创建菜单项的快捷键。 选中要设置快捷键的菜单项,在属性窗口中设置ShortcutKeys属性即可。该属性默认值值为No

7、ne,表示没有快捷键。 设置菜单项的图标。选中要设置图标的菜单项,在属性窗口中设置Image属性即可。9.1.1 菜单1下拉式菜单下拉式菜单(1) 设计菜单的常用操作设计菜单的常用操作 移动菜单项。 选中要移动的菜单项,用鼠标拖动到相应的位置即可。 插入菜单项。 如果要在某个菜单项之前插入一个新的菜单项,右击该菜单项,在弹出式菜单中选择“插入”即可。 删除菜单项。 右击要删除的菜单项,在弹出式菜单中选择“删除”即可。 编辑菜单项。 如果要编辑一个菜单项,先选中该菜单项再单击就可以进入编辑状态,然后添加、删除或修改文字即可。9.1.1 菜单1下拉式菜单下拉式菜单(2) 运行时控制菜单的常用操作运

8、行时控制菜单的常用操作在应用程序中,菜单常常会因执行条件的变化而发生一些相应的变化,主要体现在菜单项的有效性、可见性和选择性方面。 有效性控制。 菜单项的Enabled属性用来决定菜单项是否有效。在默认情况下,菜单项的Enabled属性的值为true,即菜单项是有效的。如果将该属性设置为false,则将该菜单项设置为无效(不可用)。 可以在设计时通过“属性”窗口中设置Enabled属性,也可以在运行时通过代码来设置Enabled属性,从而控制菜单项是否有效。9.1.1 菜单1下拉式菜单下拉式菜单(2) 运行时控制菜单的常用操作运行时控制菜单的常用操作【菜单项的有效性、可见性和选择性】 可见性控

9、制。 菜单项的Visible属性用来决定菜单项是否可见。在默认情况下,菜单项的Visible属性的值为true,即菜单项是可见的。如果将该属性设置为false,则该菜单项运行时不显示。 可以在设计时通过“属性”窗口中设置Visible属性,也可以在运行时通过代码来设置Visible属性,从而控制菜单项的隐藏或显示。 提示:提示:隐藏菜单项的同时必须禁用菜单项,因为仅靠隐藏无法防止通过快捷键访问菜单命令。9.1.1 菜单1下拉式菜单下拉式菜单(2) 运行时控制菜单的常用操作运行时控制菜单的常用操作【菜单项的有效性、可见性和选择性】 选择性控制。 菜单项的Checked属性用来决定菜单项是否处于选

10、中状态。在默认情况下,菜单项的Checked属性的值为false,即菜单项未选中。如果将该属性设置为true,则该菜单项处于选中状态,其左边显示“”标记。 可以在设计时通过属性窗口中设置Checked属性,也可以在运行时通过代码来设置Checked属性,从而控制菜单项是否选中。9.1.1 菜单1下拉式菜单下拉式菜单(3) 菜单项的常用属性菜单项的常用属性 前面介绍的常用操作中,已经用到了菜单项的几个属性,如Text、ShortcutKeys、Enabled、Visible、Checked等。 (4) 菜单项的常用事件菜单项的常用事件 菜单栏通过单击菜单项与程序进行交互,一般通过相应菜单项的Cl

11、ick事件来实现相应的功能。 单击某个菜单项时,将触发该菜单项的Click事件。通过一些键盘操作也可以触发菜单项的Click事件,例如使用该菜单项的快捷键。9.1.1 菜单2弹出式菜单弹出式菜单 ContextMenuStrip(上下文菜单栏)控件用于创建弹出式菜单。弹出式菜单,也称快捷菜单、上下文菜单,是窗体内的浮动菜单,用鼠标右击窗体或控件时才显示。 弹出式菜单能以灵活的方式为用户提供更加便利的操作,但需要与别的对象(如窗体、文本框、图片框)结合使用,并提供与此对象有关的特殊命令。所以,当用户在窗体中不同位置右击时,通常显示不同的菜单项。9.1.1 菜单2弹出式菜单弹出式菜单设计快捷菜单的

12、基本步骤如下: (1) 添加ContextMenuStrip控件。在工具箱中双击ContextMenuStrip控件,即可在窗体的组件区中添加一个弹出式菜单控件。组件区中,刚创建的控件处于被选中状态,窗体设计器中可以看到ContextMenuStrip及“请在此键入”字样。 (2) 设计菜单项。弹出式菜单的设计方法与下拉式菜单基本相同,只是不必设计主菜单项。 (3) 激活弹出式菜单。选中需要使用的弹出式菜单的窗体或控件,在其属性窗口中设置其ContextMenuStrip属性为所需的ContextMenuStrip控件。 【例例】 设计一个程序,可以设置窗体背景色和不透明度。设计一个程序,可以

13、设置窗体背景色和不透明度。9.1.2 工具栏 一般来说,当程序具有菜单时,也应该有工具栏。工具栏是Windows的标准特性,也是用户操作程序的最简单方法。通过使用工具栏,可以美化软件的界面设计,还可以达到快速实现相应功能的目的。1设计工具栏设计工具栏 ToolStrip(工具栏)控件用于创建工具栏。工具栏包含一组以图标按钮为主的工具项,通过单击其中的各个工具项就可以执行相应的操作。 实际上,可以把工具栏看成是常用菜单项的快捷方式,工具栏中的每个工具项都应该有对应的菜单项。9.1.2 工具栏1设计工具栏设计工具栏(1) 工具栏的创建方法。创建工具栏的基本步骤如下: 添加ToolStrip控件。在

14、工具箱中双击ToolStrip控件,可在窗体上添加一个工具栏。 给工具栏添加工具项。单击ToolStrip控件中的下拉箭头按钮,将弹出一个下拉列表,共有8种工具项,其中使用最多的是Button(按钮,对应ToolStripButton类)。 在工具栏中添加工具项最快捷的方法是直接在设计视图中单击下拉箭头按钮,从弹出的下拉列表中选择一种工具项,即可完成该工具项的添加。 也可以通过ToolStrip控件的Items属性,在“项集合编辑器”中添加工具项。9.1.2 工具栏1设计工具栏设计工具栏(2) ToolStrip控件的常用属性。 ToolStrip控件的常用属性除了Name、BackColor

15、、Enabled、Location、Locked、Visible等一般属性,还有一些自己特有的属性。(3) 工具栏按钮的常用属性和事件。 ToolStripButton对象的常用属性除了Name、Enabled、Text、TextAlign、Visible等一般属性,还有一些自己特有的属性。 Click事件是工具栏按钮的常用事件,可以为其编写事件处理程序来实现相应功能。工具栏按钮往往实现和下拉式菜单中的菜单项相同的功能,可以在ToolStripButton的Click事件处理程序中,调用菜单项的Click事件方法。 9.1.2 工具栏2创建可拖动的工具栏创建可拖动的工具栏 ToolStripC

16、ontainer(工具栏容器)控件可以在窗体的每一侧提供面板,并提供可以容纳一个或多个控件的中间面板。 在工具箱中双击ToolStripContainer控件,可在窗体上添加一个工具栏容器,单击其右侧的小三角按钮,将弹出一个下拉菜单。9.1.2 工具栏2创建可拖动的工具栏创建可拖动的工具栏 在弹出的下拉菜单中选择“在窗体中停靠填充”,工具栏容器将填满除菜单栏以外的所有窗体编辑区(如果窗体上没有其他控件将填满整个编辑区)。 9.1.2 工具栏2创建可拖动的工具栏创建可拖动的工具栏 ToolStripContainer控件包括5个区域,分别是“上、下、左、右、中”。其中,中间的区域用来放置普通控件

17、,放置在该区域中的控件运行时不可拖动;其余的4个区域(上、下、左、右)用来放置可拖动的工具栏,这些区域需要单击相应的箭头按钮才能显示(或隐藏)。依次单击4个箭头按钮,可展开4个区域,然后选中上方的区域,双击工具箱中的ToolStrip控件,即可在上面的区域中添加一个可拖动的工具栏。程序运行时,用户可以在4个区域中随意拖动工具栏。9.1.3 状态栏 状态栏一般位于窗体的底部,主要用来显示应用程序的各种状态信息,即将当前程序的某项信息显示到窗体上作为提示。 StatusStrip(状态栏)控件用于创建状态栏。状态栏可以由若干个状态面板组成,显示为状态栏中一个个小窗格,每个面板中可以显示一种指示状态

18、的文本、图标或指示进程正在进行的进度条。9.1.3 状态栏1状态栏的创建方法状态栏的创建方法 创建状态栏的基本步骤如下:(1) 添加StatusStrip控件。在工具箱中双击StatusStrip控件,可在窗体底部添加一个状态栏。(2) 给状态栏添加状态面板。单击StatusStrip控件中的下拉箭头按钮,将弹出一个下拉列表,共有4种状态面板,其中使用最多的是StatusLabel(状态标签,对应ToolStripStatusLabel类)。 在状态栏中添加状态面板最快捷的方法是直接在设计视图中单击下拉箭头按钮,从弹出的下拉列表中选择一种状态面板,即可完成该状态面板的添加。 也可以通过Stat

19、usStrip控件的Items属性,在“项集合编辑器”中添加工具项。9.1.3 状态栏2状态栏的常用属性状态栏的常用属性 StatusStrip控件的常用属性除了Name、BackColor、Enabled、Location、Locked、Visible等一般属性,还有一些自己特有的属性。9.1.3 状态栏3状态标签的常用属性状态标签的常用属性 ToolStripStatusLabel对象的常用属性与Label控件非常类似,但有些属性意义不同,有些属性是状态标签特有的。9.2 对话框 对话框是一个窗体,它不但可以接受消息,而且可以输出消息,还可以被移动和关闭。 之前介绍的消息框就是一种特殊的对

20、话框,它与其他对话框的主要区别在于:消息框不需要创建MessageBox类的实例,只要调用静态方法Show就可以显示。9.2.1 通用对话框 .NET框架提供了一组基于框架提供了一组基于Windows的标准对的标准对话框控件,主要包括话框控件,主要包括OpenFileDialog、SaveFileDialog、FolderBrowserDialog、FontDialog、ColorDialog等控件。等控件。 这几个通用对话框都是模式对话框,而且具有这几个通用对话框都是模式对话框,而且具有两个通用的方法:两个通用的方法:ShowDialog和和Reset。ShowDialog()方法方法用来显

21、示一个对话框,并返用来显示一个对话框,并返回一个回一个DialogResult枚举值;枚举值;Reset()方法方法用来用来将对话框的所有属性重新设置为默认值。将对话框的所有属性重新设置为默认值。9.2.1 通用对话框 1打开文件对话框打开文件对话框 OpenFileDialog(打开文件对话框)控件用于提供标准的Windows【打开】对话框,可以从中选择要打开的文件。在工具箱中双击OpenFileDialog控件,就会在窗体下方的组件区中看到一个OpenFileDialog对象。 (1) 常用属性。 通过设置OpenFileDialog控件的属性可以定制适合需要的打开对话框。9.2.1 通用

22、对话框 1打开文件对话框打开文件对话框(2) 常用方法。 OpenFileDialog控件的属性设置好后,可以通过ShowDialog方法在运行时显示对话框,例如:OpenFileDialog1.ShowDialog(); OpenFileDialog控件的常用方法除了ShowDialog 和Reset,还有OpenFile方法。 OpenFile()方法用于打开用户选定的具有只读权限的文件,并返回该文件的Stream(流)对象,例如:System.IO.Stream stream = openFileDialog1.OpenFile();9.2.1 通用对话框 1打开文件对话框打开文件对话框

23、(3) 常用事件。 OpenFileDialog控件只有两个事件:FileOk和HelpRequest。 FileOk事件当用户在对话框中单击“打开”按钮时发生,HelpRequest事件当用户在对话框中单击“帮助”按钮时发生。9.2.1 通用对话框 2保存文件对话框保存文件对话框 SaveFileDialog(保存文件对话框)控件用于提供标准的Windows【另存为】对话框,可以从中指定要保存的文件路径和文件名。在工具箱中双击SaveFileDialog控件,就会在窗体下方的组件区中看到一个SaveFileDialog对象。 (1) 常用属性。 SaveFileDialog控件的常用属性大多

24、与OpenFileDialog控件相同,但其CheckFileExists属性的默认值为false,没有Multiselect属性。 另外,SaveFileDialog控件还有两个特有属性:CreatPrompt和OverwritePrompt。9.2.1 通用对话框 2保存文件对话框保存文件对话框 (1) 常用属性。 CreatePrompt属性用来控制在将要创建新文件时是否提示用户允许创建该文件,而OverwritePrompt属性用来控制在将要改写现有文件时是否提示用户允许替换该文件。这两个属性仅在ValidateNames属性为true时才适用。(2) 常用方法和事件。 SaveFil

25、eDialog控件的常用方法和事件与OpenFileDialog控件相同,但其OpenFile()方法是用于打开用户选定的具有读/写权限的文件,其FileOk事件当用户在对话框中单击“保存”按钮时发生。9.2.2 自定义对话框 在程序设计过程中,可能需要显示特定样式和功能的对话框,这就需要编程人员设计一个自定义对话框。 对话框实际上是一种特殊的窗体,在Form类中,使用ShowDialog方法显示模式窗体,使用Show方法显示非模式窗体。1设计自定义对话框设计自定义对话框 在应用程序中添加自定义对话框的方法如下:(1) 在项目中添加一个Windows窗体。在打开的项目中,选择【项目】|【添加W

26、indows窗体】命令,出现的【添加新项】对话框中默认选择了【Windows窗体】模板,窗体名默认为Form2,在【名称】文本框中输入窗体名,单击【添加】按钮,即为当前项目添加了一个窗体。9.2.2 自定义对话框 1设计自定义对话框设计自定义对话框 在应用程序中添加自定义对话框的方法如下:(1) 在项目中添加一个Windows窗体。(2) 设置该窗体的属性。将窗体的FormBorderStyle属性设置为FixedDialog,MinimizeBox、MaximizeBox、ShowInTaskbar属性均设置为false,HelpButton属性设置为false,Name和Text属性也要进

27、行相应设置。(3) 添加按钮和其他控件,并实现对话框按钮的功能。为窗体添加按钮和其他控件并设置相关属性,再将窗体的AcceptButton和CancelButton属性设置为相应的按钮,然后在按钮的Click事件中添加相应代码。9.2.2 自定义对话框 2使用自定义对话框使用自定义对话框 自定义对话框设计好之后,就可以在程序中使用。假设自定义对话框的窗体名为OtherDialog,使用方法如下:OtherDialog otherDialog1 = new OtherDialog();otherDialog1.Text = “自定义对话框”;/其他属性设置otherDialog1.ShowDia

28、log(); /显示模式对话框9.3 多文档操作 单文档界面(SDI)和多文档界面(MDI)是Windows应用程序的两种典型结构。 SDI(Single Document Interface)一次只能打开一个窗体,一次只能显示一个文档。在例10-9中设计的类似于记事本的程序,就是一个SDI应用程序。Windows的记事本和写字板是典型的SDI应用程序,一次只能处理一个文档,如果用户要打开第二个文档就必须打开一个新的程序实例,两个程序实例之间没有关系,对一个实例的任何配置都不会影响第二个实例。 MDI(Multiple Document Interface)可以在一个容器窗体中包含多个窗体,能够同时显示多个文档,而每个文档都在自己的窗口内显示。MDI应用程序由父窗口和子窗口构成,容器窗体称为父窗口,容器窗体内部的窗体则称为子窗口。Office的PowerPoint和Excel就是典型的MDI应用程序。 M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论