CHP4-用户界面设计

更新时间:2024-06-26 03:08:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第四章 窗体界面设计

【教学目标】

1. 掌握主菜单、弹出式菜单的制作; 2. 掌握工具栏的制作; 3. 掌握状态栏的制作。 【重点、难点】

1. 各控件的常用属性;(重) 2. 属性的设置方法。(难)

【教学时数】4学时(2学时理论+2学时实践)

4.1 窗体界面设计原则

1. 窗体界面风格要一致:设计具有多个窗体界面的应用程序时,要使各窗体的用户界

面风格保持一致。这不仅要求相关控件位置、说明信息和颜色方案一致,也要求操作方式一致。

2. 窗体界面布局要合理,符合使用习惯:窗体界面控件选择符合Windows应用程序操

作习惯,容易让人理解和接受。

3. 适当的提示,及时的帮助:窗体界面设计要充分为用户着想,用户操作前和完成后,

应该给予及时地提示,随时能够获取主题帮助。

4.2菜单设计

菜单可分为两类,主菜单和快捷菜单 1.主菜单设计

主菜单由菜单栏和下拉子菜单组成,菜单栏位于标题栏的下面,由多个横向的菜单标题组成,当单击某个菜单标题时,将打开其下拉子菜单。

1)MenuStrip控件常用的属性:

? MdiWindowListItem:获取或设置用于显示MDI子窗体列表的ToolStripMenuItem。 ? ShowItemToolTips:获取或设置一个值,该值指示是否为MenuStrip显示工具提示。 ? GripStyle:设置是否显示菜单最左侧的栅格(栅格是指菜单左侧4个垂直排列的点),

栅格隐藏后用户就不能移动该菜单了。

ToolStripMenuItem对象用于生成菜单项,或作为子菜单的容器。为了显示 ToolStripMenuItem,必须将其添加到MenuStrip或ContextMenuStrip控件中。ToolStripMenuItem 类提供了配置菜单项外观和功能的属性。

2)ToolStripMenuItem对象的常用属性:

? Checked属性:用来设置菜单项前面是否显示“√”,此功能可以标识在互斥的菜单

项列表中选定的菜单项。

? ShortcutKeys属性:用来设置菜单项的快捷键。 ? Enabled属性:用来设置菜单项是否可用。 ? ShowShortcut属性:用来设置是否显示快捷键。 ? Text属性:用来设置菜单项的显示标题文本。 ? Visible属性:用来设置菜单项是否可见。

? AutoToolTip属性:用来设置是否显示由ToolTipText属性提供的菜单项功能文本提

示。

? ToolTipText属性:用来获取或设置菜单项功能的文本提示。 3)ToolStripMenuItem对象的常用事件:

? Click事件:是MenuItem对象最常用的事件,只要和菜单项执行操作相关的代码,

全部放在Click事件中。用鼠标单击菜单项或者使用菜单项的访问键或快捷键时,都会触发Click事件。

? CheckedChanged事件:当菜单项的Checked属性值发生改变时触发该事件。 4)演示设计主菜单,并添加处理菜单事件。

2.快捷菜单设计

快捷菜单由ContextMenuStrip控件创建,该控件和MenuStrip控件一样由ToolStripMenuItem对象组成,这些对象构成了快捷菜单的菜单项。参照制作主菜单的方法即可创建出弹出式菜单。

快捷菜单通常与某一控件(或窗体)相关联,可以右击调出它。关联的方法是选择需要关联快捷菜单的控件,设置其ContextMenuStrip属性值设为快捷菜单的名称,这样在右击控件的时候才会弹出快捷菜单。

演示设计快捷菜单。

4.3工具栏与状态栏设计 1.工具栏设计

使用ToolStrip控件及其相关控件创建工具栏,ToolStrip控件可以看作是一个创建工具栏的容器控件,它使用一组基于ToolStripItem类的控件创建工具栏上的按钮和标签,这些ToolStripItem类控件必须在ToolStrip容器控件中使用。 1) ToolStrip控件一些重要的属性和事件:

? Anchor属性:可以使控件与父容器的特定边缘始终保持固定不变。

? Dock属性:可以使控件停靠到父容器的某个边缘,强迫控件与父容器的边缘保持接

触。

? ShowItemToolTip属性:设置是否显示工具栏上的某个按钮的工具提示 。

? AllowItemReorder属性:指示拖放和项重新排序是否专门由ToolStrip 类进行处理。 ? LayoutStyle属性:指示ToolStrip如何对其项进行布局。 ? RenderMode属性:获取或设置要应用于ToolStrip的绘制样式。

? GripStyle属性:设置栅格是否显示,栅格隐藏后用户就不能再移动工具栏。 ? Items属性:用于获取属于ToolStrip的所有项,如文本、按钮等控件。 2) ToolStripItem类控件

ToolStripItem类控件用于创建工具栏上的标签、分隔符、按钮和面板,必须将ToolStripItem类控件包含在ToolStrip、MenuStrip、StatusStrip或ContextMenuStrip中,不能直接将该控件放在窗体中。

ToolStripItem 控件的相应子集控件有:ToolStripButton(按钮)、ToolStripLabel(文本、链接文本或图像标签)和ToolStripSeparator(分隔线)、ToolStripDropDownButton(文本、图像、下拉按钮)、ToolStripTextBox(文本框)、ToolStripSplitButton(文本、下拉按钮)、ToolStripProgressBar(进度条)、ToolStripComboBox(下拉列表框)等,这些控件是组成工具栏的界面元素。

ToolStripItem类控件的常用属性和事件如下:

? Image属性:获取或设置显示在ToolStripItem上的图像,该属性可以通过项目资源管

理窗口设置属性值,属性值为图形文件带路径的文件名称。 ? Text属性:获取或设置要显示在项上的文本。 ? Font属性:获取或设置由该项显示的文本的字体。

? TextAlign属性:获取或设置ToolStripLabel上的文本的对齐方式。

? TextDirection属性:获取ToolStripItem上所用文本的方向。属性值有水平、垂直90

度和垂直270度等:

? DisplayStyle属性:获取或设置是否在ToolStripItem 上显示文本和图像。可以设置的

属性值有:None、Text、Image、ImageandText。

? ToolTipText:获取或设置作为控件的ToolTip显示的文本。

? AutoToolTip获取或设置一个值,该值指示是否使用ToolStripItem 工具提示的Text 属

性或ToolTipText属性,属性值默认为True。

3)演示设计工具栏

2.状态栏设计

窗体中状态栏的创建使用StatusStrip控件,StatusStrip控件与ToolStrip控件一样是一个容器控件,通过在控件中创建ToolStripItem对象来创建状态栏的面板。 1) StatusStrip控件

StatusStrip控件是一个可灵活配置的、可扩展的控件,具有较多的属性、方法和事件,下面是一些常用的属性:

? Stretch属性:获取或设置一个值,该值指示StatusStrip是否在它的ToolStripContainer

中从一端拉伸到另一端。

? Items属性:获取属于状态栏控件的所有项,例如ToolStripStatusLabel等对象。 2) ToolStripStatusLabel控件

ToolStripStatusLabel是状态栏中用来显示应用程序状态的面板,面板上可以显示应用程序的文本信息或图标。ToolStripStatusLabel控件有如下常用属性和事件:

? AutoSize属性:指示是否自动调整控件的大小以完整显示其内容。 ? Text属性:获取或设置要显示在状态栏面板上的文本。

? TextAlign属性:获取或设置ToolStripLabel上的文本的对齐方式。 ? TextDirection属性:获取ToolStripItem上所用文本的方向。 ? ToolTipText获取或设置作为控件的 ToolTip 显示的文本。 ? Image属性:获取或设置显示在状态栏面板上的图像。 ? ImageAlign属性:获取或设置状态栏面板上的图像对齐方式。 3)演示设计状态栏

3.创建可停靠的菜单和工具栏 4.4MDI窗体设计

按传统的习惯分类,Windows应用程序的界面有三类:对话框应用程序,单一文档界面应用程序(SDI)和多文档应用程序(MDI)。

? 基于对话框的应用程序:不能最大化和还原 ? 单文档界面的应用程序:窗口可以最大化和还原 ? 多文档界面的应用程序:在主窗口中可以打开多个子窗口 1.创建MDI应用程序 (1) MDI父窗体

MDI父窗体由普通的窗体转变而来,将普通窗体的IsMDIContainer属性设置为True,普通窗体就成了MDI父窗体。普通窗体成为MDI父窗体后,其底色会显示为深灰色。 父窗体常用的属性、事件和方法如下:

? Name属性:主窗体的名称,程序中标识主窗体类。

? IsMdiContainer属性:是否作为主窗体,属性值设置为True。 ? Text属性:设置或获取主窗体的标题。

? WindowState属性:应用程序启动时,主窗体的状态,一般将属性值设置为Maximized。 ? MdiChildren属性:获取一个窗体数组,数组中的元素为以该窗体为父窗体的子窗体。 ? ActiveMdichild属性:获取MDI窗口中当前活动的子窗口。

? MdiChildActivate事件:在多文档界面应用程序内激活或关闭MDI子窗体时发生。 ? LayOutMdi( )方法:在MDI父窗体内排列多文档界面子窗体 (2) MDI子窗体

在VB2005中,窗体的父子关系是在运行时建立的,只能在程序代码中进行设置,其方法是把窗体的MDIParent属性设置为MDI父窗体,这样一个窗体就成为了MDI子窗体。如果父窗体中有多个子窗体,可以使用父窗体的LayoutMdi方法来排列它们

演示设计MDI应用程序。

本章小结

本章主要介绍了窗体界面设计原则,窗体菜单、工具栏、状态栏及多文档窗体的制作和使用,菜单和工具栏是本章学习的重点,多文档窗体的设计是本章的难点。

开发应用程序时,用户界面的设计十分重要。在设计用户界面时,风格要一致、布局要合理、要提供适当的提示信息,尽量满足用户的需求。

通过本章学习,应该了解设计用户界面的一般原则;掌握菜单和工具栏的创建和使用;掌握控件的停靠与锚定方法;掌握MDI窗体的设计。

作业/实验 实验七 用户界面设计

一、实验目的:

1. 掌握主菜单、弹出式菜单的制作; 2. 掌握工具栏的制作; 3. 掌握状态栏的制作。 二、实验学时:2学时 三、实验内容:

1、制作学生成绩管理系统主界面,如下图所示

四、实验内容与提示

必做部分

1、主菜单的内容构成(提示:使用MenuStrip控件) 顶级菜单:系统管理

子菜单:添加用户

密码修改 权限管理

———— 退出

顶级菜单:数据维护

子菜单:学生信息维护 教师信息维护 课程信息维护 顶级菜单:教学管理

子菜单:教师任课 学生选课 成绩录入 打印成绩单 顶级菜单:成绩查询

子菜单:学生成绩查询

课程成绩分析

顶级菜单:帮助

子菜单:软件介绍 使用说明 顶级菜单:窗口

子菜单:层叠 纵向排列 横向排列

2、快捷菜单:(提示:使用ContexMenuStrip控件)

右键单击主窗体空白处,弹出右键快捷菜单,菜单项为“退出系统”,并实现其功能代码 退出系统程序代码:Application.exit()

3、工具栏如下图所示(提示:使用ToolStrip控件,按钮图片使用默认效果)

设置工具栏按钮的显示方式(DisplayStyles)为图片和文本(image&text) 4、状态栏(提示:使用StatusStrip控件,再其上添加两个状态栏标签): (1)显示当前系统时间,并随系统时间同步更新显示(Timer控件的使用) (2)版权所有:姓名+学号

5、主窗体和子窗体:

(1)设置上面的窗体为主窗体(提示:IsMDIContainer属性),主窗体运行时默认为最大化 (2)添加工具栏按钮对应的三个子窗体:学生选课子窗体、成绩录入子窗体、成绩查询子窗体,三个子窗体中不用放置具体的控件,只需修改对应的窗体标题即可。

点击工具栏按钮,则弹出对应的子窗体,要求子窗体显示在主窗体中(提示:为子窗体指定父窗体),若菜单中有对应的三个菜单项,则也实现这三个菜单项的功能。 6、实现“窗口”主菜单中三项子菜单的功能 提示:使用窗体的LayoutMdi方法实现

方法参数:MdiLayout.Cascade为层叠排列 MdiLayout.TileVertical为纵向排列

MdiLayout.TileHorizontal为横向排列

课下选做题:为学生成绩管理系统设计一个系统登陆页面,参考界面如下图所示:

要求:(1)设置用户权限有“管理员”、“教师”、“学生”三种

(2)用户名、密码、权限均无误的时候弹出学生成绩管理页面

要求:若登陆用户的身份为管理员,则可以使用主窗体中的所有菜单项和工具按钮 若登录用户的身份为教师,则顶级菜单“系统管理”、“数据维护”和“教学管理”中的“教师任课”、“学生选课”子菜单不可见

若登录用户的身份为学生,则可以使用的菜单为:“教学管理”中的“学生选课”、“打印成绩单”选项和“成绩查询”、“帮助”、“窗口”顶级菜单为可见 提示:将用户信息用结构体数组来表示和存储 设置某一菜单不可见用Visible属性

本文来源:https://www.bwwdw.com/article/f2w3.html

Top