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属性
正在阅读:
CHP4-用户界面设计06-26
基于MATLAB的GUI设计03-10
动量守恒定律的综合应用08-07
【高考总动员】2016届高考地理一轮总复习课时提升练(二十九)含答06-15
30首现代诗歌 -10-05
原始人从事美术创作的主要意图是什么03-17
雷诺氏病有哪些症状?如何治疗?03-06
结晶性塑料和非结晶性塑料的区别08-16
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 界面设计
- 用户
- CHP
- 特殊教育学校项目执行自查报告
- 中国投稿邮箱目录大全
- 发电厂设备分工分界管理规定
- 从系统论角度探究我国旅游业的和谐发展
- 2018年高考语文高分作文赏析:及名师点评:02细节点染
- 五年级上册品社单元试题及答案
- 不合格品控制程序(中英文含表格)
- 重庆大学2012形势与政策考试答案 79A卷
- 地震自救常识演练
- 安捷伦1100及安捷伦1200高效液相色谱仪泵的日常维护
- 8.3测量小灯泡的电功率(师)
- 第三章 教育与人的发展
- 线性代数基本定理
- FTZ10H72-TVI高清机芯规格书 - 图文
- 高考考前十五天(每天一练)3
- 四川某电子学院学生宿舍工程电气、给排水施工组织设计(正)
- 丁生工作总结
- 机电安全技术终稿考试覆盖率100%稳准狠
- 初中美术老师个人发展三年规划
- 浅谈文秘人员形象塑造