第5章 Windows应用程序的用户界面设计.ppt_第1页
第5章 Windows应用程序的用户界面设计.ppt_第2页
第5章 Windows应用程序的用户界面设计.ppt_第3页
第5章 Windows应用程序的用户界面设计.ppt_第4页
第5章 Windows应用程序的用户界面设计.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

第5章Windows应用程序的用户界面设计 本章重点介绍WindowsForms的基础 窗体设计器的使用 常用的Windows窗体控件的基本用法 WindowsForms是制作标准Win32窗口及其元素的一种更高级的方法 NETFramework中的所有语言都使用WindowsForms来代替在图形窗体中所使用的组件 WindowsForms为所有的语言提供了以套丰富 统一的控件和绘图功能 以及用于图形和图像的底层Windows服务标准API WindowsForms是基类的一部分 所使用的命名空间是System Windows Forms 5 1WindowsForms基础 用户界面的主要任务如下 数据显示向后台传送用户输入信息接收后台运算的结果数据获取数据验证提示用户工作步骤显示错误信息 5 1 1WindowsForms基础 WindowsForms程序是一个类 在 NET中并没有单独的 窗体模块 语法 窗体是一个类 所以不能被隐含加载 即简单地通过引用一个窗体来加载时无效的 必须创建窗体并显示它 与 NETFramework中的所有类一样WindowsForms有构造函数和析构函数 可视化窗体设计器在类中插入了许多代码 以创建和管理窗体及窗体中的控件 事件的处理更加灵活 5 1 2理解WindowsForms 析构函数 c 析构函数是用于执行清除操作的特殊方法 析构函数不能重载 并且每个类只能有一个析构函数语法 析构函数的主体 析构函数声明方式与构造函数的相同只是在类名前加个 符号析构函数不接受任何参数 不带任何反问修饰符 一个类只能有一个析构函数 析构函数不能重载析构函数不能显式或手动调用 只有在该类被销毁的时候调用析构函数通常用于关闭数据库 文件 网络连接等操作 5 2 1创建窗体新建一个Windows应用程序项目时就会创建一个默认名为Form1的窗体 新建窗体的组成部分 标题栏控制菜单按钮窗体控制按钮边界窗体区 5 2使用窗体设计器 在设计器中调整窗体的大小注意 Shift 键的使用在属性窗口中设置窗体的大小Size属性输入窗体的宽度和高度或展开该属性单独设置Width和Height值 一般用于精确设置 在代码中设置窗体的大小适用程序运行期间调整窗体的大小 使用this关键字 表示当前实例 5 2 2调整窗体尺寸 设置Location属性能够影响窗体在屏幕上的显示位置 即窗体的左上角坐标 以像素为单位 与所使用的显示器大小和分辨率有关 设置StartPosition属性可以标识显示区域的边界 默认值为 WindowsDefaultLocation 由系统决定 也可以设置值为 Center 然后再代码中对其进行修改 5 2 3窗体在屏幕上的显示位置 1 调整窗体位置的方法 在设计器中调整窗体位置双击要调整其位置的窗体 在属性窗体中 将StartPosition属性设置为 Manual 在Location属性中输入窗体左上角坐标值 X和Y坐标间以逗号分隔 也可以展开该属性 分别设置X和Y 编程调整窗体位置可以将Location属性设置为一个新的Point结构 例 this Location newpoint 400 400 可以使用Left或Top属性修改窗体的X或Y坐标 例 this Left 200 可以使用增量修改窗体位置 例 this Left 200 也可以使用DesktopLocation属性 该属性只能通过代码设置 设置窗体位置 它代表桌面上窗体的位置 5 2 3窗体在屏幕上的显示位置 2 修改FormBorderStyle属性 可以控制窗体的尺寸重设行为 并会影响标题栏及其上按钮的显示 各个值及功能如下 None 起始窗体无边框相关的元素 Fixed3d 使用3D边框效果 不允许重设窗体尺寸 可以包含控件菜单框 标题栏及其上的最大化和最小化按钮 根据窗体创建凸起边框 FixedSingle 不允许重设窗体尺寸 可以包含控件菜单框 标题栏及其上的最大化和最小化按钮 只能通过最大化和最小化按钮调整窗体尺寸 为窗体创建单线边框 Sizable 默认设置 通常用于主窗口 可以重设尺寸 可以包含控件菜单框 标题栏及其上的最大化和最小化按钮 可以通过控件菜单框 最大化和最小化按钮或边界上的鼠标指针改变窗体尺寸 FixedToolWindow 用于工具窗口 显示不可重设尺寸的窗口 其中带有Close按钮和标题栏 窗体不出现在Windows任务栏中 SizableToolWindow 用于工具窗口 显示可以重设尺寸的窗口 其中带有Close按钮和标题栏 窗体不出现在Windows任务栏中 5 2 4设置窗体的边框风格 1 创建顶层窗体TopMost属性决定窗体是否为最顶层窗体 即使最顶层窗口处于非激活状态 仍然处于其他非最顶层窗口之上 该属性的值可以在属性窗口中设置 也可以通过代码设置 2 创建透明窗体透明窗体只能由Windows2000及以后版本才支持 可以通过属性窗口设置Opacity属性值 其取值范围为0 0 完全透明 1 0 完全不透明 也可在代码中设置 3 启动屏幕它是一种窗体 通常显示的是诸如应用程序名 版权信息和一个简单的位图等内容 对于启动屏幕的设计来说 尽量简单为好 如果使用大量位图或者大量控件 则启动屏幕本身装入将会变慢 5 2 5创建不同形式的窗体 1 4 模态和非模态窗体窗体和对话框都可以被分为两类 模态和非模态 在应用程序继续运行前 模态窗体或对话框必须被关闭 一般来说 显示重要信息的对话框都应该为模态对话框 如About对话框 MessageBox等 非模态窗体允许用户在窗体间切换输入焦点 而无需关闭初始窗体 当非模态窗体显示时 用户依然可以在其他窗体中进行操作 如各个工具窗口 1 显示非模态窗体 要以非模态对话框的形式显示窗体 需要调用Show方法 如 FormfrmAbout newForm fimabout Show 2 显示模态窗体 需要调用ShowDialog方法 如 FormfrmAbout newForm fimabout ShowDialog 5 2 5创建不同形式的窗体 2 5 3常用的Windows窗体控件 标签 Label 控件用于显示用户不能编辑的文本或图像 常用属性及含义如下 5 3 1标签 文本框 TextBox 可以用户输入信息 并且可以显示 编辑或修改文本内容等 常用属性及含义如下 5 3 2文本框 按钮 Button 是界面中常用的控件 通常用于响应用户的单击事件 常用属性及含义如下 5 3 3按钮 列表框 ListBox 用来显示一组项目 用户可以从中选择一个或多个项目 常用属性及含义如下 5 3 4列表框 FindString和FindStringExact方法 在列表框中搜索含有特定搜索字符串的项目Item Add方法 相列表添加项目Item Remove方法 从列表中删除项目Item Insert方法 相列表中插入项目SetSelected 选择列表中的项目 5 3 4列表框控件常用方法 例 计算并输出从sum 1 k 1 k 满足sum 1000是退出循环 章节目录 上一页 下一页 5 3 4列表框例题 按钮的Click 单击 事件代码为 privatevoidbutton1 Click objectsender System EventArgse intk 1 intsum 0 while k1000 break 章节目录 上一页 下一页 组合框 ComboBox 是文本框和列表框的组合 兼有文本框和列表框的功能 用户可以再组合框中输入信息 也可以从列表中选择项目 组合框特有属性 SelectedText 获取或设置组合框控件文本框内所选定的文本DropDownStyle 获取或设置组合框控件的样式 可以使Simple DropDown和DropDownList这3种 5 3 5组合框 例 要求单击 开始 按钮 将两个组合框中指定的年份范围内的所有闰年输出到列表框中 图6 14为显示1955 2005年之间的所有闰年的结果 章节目录 上一页 下一页 5 3 5组合框例题 开始 代码 privatevoidbtnStart Click objectsender System EventArgse 如果任一组合框中没有选定年份 则不执行任何操作if cboStart SelectedIndex 1 cboEnd SelectedIndex 1 return intyearStart int Parse cboStart SelectedItem ToString intyearEnd int Parse cboEnd SelectedItem ToString if yearStart yearEnd return lstOut Items Clear 清除上次判断显示的内容for inti yearStart i yearEnd i i 1 if i 4 0 清空列表 5 3 5组合框例题 单选按钮 RadioButton 控件为用户提供两个或多个互斥选项组成的选项集 用户只能从中选择一个 复选框 CheckBox 控件为用户提供一组选择 用户可以依次选中任意数量的复选框 一些特殊属性 Text 设置单选按钮控件与复选框控件的标题文字 Checked 获取单选按钮控件与复选框控件是否被选中 常用的事件 Click事件 当用户单击时引发的Click事件CheckedChanged事件 当用户单击时 改变Checked的属性值 引发CheckedChanged事件 同时引发Click事件 5 3 6单选按钮与复选框 例题 制作一软件 能实现简单功能 各控件及属性见下图 关于C MessageBox的使用 MessageBox 标题 按钮类型 显示图标样式 按钮类型确定1MessageBoxButtons OK确定1取消2MessageBoxButtons OKCancel 终止3重试4忽略5MessageBoxButtons AbortRetryIgnore是6否7取消2MessageBoxButtons YesNoCancel是6否7MessageBoxButtons YesNo重试4取消2MessageBoxButtons RetryCancel图标样式MessageBoxIcon QuestionMessageBoxIcon AsteriskMessageBoxIcon InformationMessageBoxIcon ErrorMessageBoxIcon StopMessageBoxIcon HandMessageBoxIcon Exclamation 主菜单 MenuStrip 控件允许窗体在顶部有标准的Windows菜单 包含一个描述各个菜单项的ToolStripMenuItem对象集 可以设置相关属性 弹出菜单 ContextMenustrip 控件可以创建弹出菜单 快捷菜单 方法如下 先添加一个ContextMenuStrip控件到窗体上设置目标控件 如窗体 文本框等 的ContextMenuStrip属性 指向刚才添加的ContextMenuStrip控件 这样就实现了两者的关联 动态将一些菜单项添加到ContextMenuStrip控件中 也可先在属性中设置 在目标控件上按右键时将弹出快捷菜单ToolStripMenuItem主要属性及其用法见书P100 创建菜单项是只要单击对应的框 并输入菜单项即可 一个窗体只需要一个MenuStrip控件 但可以使用任意多个不同的ContextMenuStrip控件 5 3 7主菜单控件和弹出菜单控件 工具栏 ToolStrip 控件时Windows应用程序中常用的控件 工具栏控件在窗体中作用控制条 以显示一列下拉菜单和可激活命令的位图按钮 工具栏包含的按钮或菜单与应用程序菜单项功能一般对应 主要提供快速访问 一般来讲 工具栏中的按钮往往与图像相结合 这种方法的实现需要与存放图像的ImageList控件相结合 首先应在窗体中添加 ImageList 控件 在控件中添加相应的图像 其次 设置工具栏的ImageList属性 在该属性的下拉框中选择ImageList控件 最后 打开项集合编辑器 设置ImageIndex为每个ToolStripButton按钮选择相应得图像即可 5 3 8工具栏控件 例 根据工具栏中的按钮改变标签中的文字 如图所示 5 3 8工具栏控件例题 该题的工具栏单击事件的代码如下 privatevoidtoolBar1 ButtonClick objectsender System Windows Forms ToolBarButtonClickEventArgse if e Button toolBarButton1 如果单击工具按钮 水浒 则显示下面的文本label1 Text 滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 几度夕阳红 elseif e Button toolBarButton2 如果单击工具按钮 春晓 则显示下面的文本label1 Text 春眠不觉晓 处处闻啼鸟 夜来风雨声 花落知多少 5 3 8工具栏控件例题 elseif e Button toolBarButton3 如果单击工具按钮 枯藤 则显示下面的文本label1 Text 枯藤 老树 昏鸦 夕阳西下 断肠人在天涯 else 如果单击工具按钮 水浒 则显示下面的文本label1 Text 少壮不努力 老大图悲伤 另外 工具栏中按钮往往实现和菜单中选项相同的功能 这种情况下 不能通过ToolBarButton的DropDownMenu实现 因为它只能连接相关的 5 3 8工具栏控件例题 弹出式菜单 可以通过设置ToolBarButton的Tag的属性为相应菜单对象 从而实现和菜单对象的关联 比较简便的方法是在程序中设置 如可以在主窗体的构造程序InitializeComponent 中该工具栏按钮的后面加上以下代码 toolBarButton1 Tag menuItem6 编写工具栏单击事件 通过调用PerformClick方法激活相应的菜单项 如以下代码 ToolBarButtonbutton e Button MenuItemmItem MenuItem button Tag mItem PerformClick 5 3 8工具栏控件例题 多行文本框 RichTextBox 控件用来输入和编辑文本 提供比标准TextBox控件更高级的格式设置功能 该控件中的文本可以直接输入获取 或从RTF格式文件或纯文本文件加载文本 提供具有打开和保存文本功能的方法 属性大都与文本框相同 一些其他常用属性及含义 SelectionFont 将文本以粗体或斜体显示 还可以使用此属性更改文本的大小和字样SelectionColor 更改文本的颜色SelectionBullet 若要创建项目符号列表 5 3 9多行文本框 通过图片框 PictureBox 控件来显示位图 元文件 一种矢量图形 图标 JPEG GIF或PNG文件中的图形 Image属性设置要指定的Image 也可以通过设置ImageLocation 使用Load方法同步加载图像或使用LoadAsync方法异步加载图像 SizeMode属性控制图像在现实区域中的剪裁和定位 AutoSize PictureBox控件调整自身大小 使图片能正好显示其中CenterImage 若控件大于图片则图片居中 若图片大于控件则图片居中 超出控件的部分被剪切掉Normal 图片显示在控件左上角 若图片大于控件则超出部分被剪切掉StretchImage 若图片与控件大小不等 则图片被拉伸或缩小以适应控件可以再运行时使用ClientSize属性来更改显示区域的大小 默认时候该控件显示时没任何边框 FixedSingle表示单线边框 Fixed3D表示立体边框 5 3 10图片框 图片列表控件 ImageList ImageList控件的常用属性Image ImageList中所有图片组成的集合ImageSize ImageList中每个图片的大小 有效值在1 256之间ColorDepth 表示图片每个像素占用几个二进制位 当然位数越多图片质量越好 但占用的存储空间也越大 图片列表控件 UpDown控件包括DomainUpDown 显示单个字符串值 该值通过单击控件的向上或向下按钮选定 NumericUpDown 显示数值 且上下箭头课可以递增或递减该数值 不需要对应的随附控件 具体用途 使用文本框的数字递增或递减允许组合框中的选项循环DomainUpDown控件和NumericUpDown控件的属性及含义见书P103 5 3 11UpDown控件 日期 时间控件 DatetimerPicker 用来选择日期和时间 并以指定的格式显示此日期和时间 常用属性及含义如下 5 3 12日期 时间控件 进度条 ProgressBar 控件以3种样式中的一种指示较长操作的进度 从左向右分步递增的分段块从左向右填充的连续栏以字幕方式在ProgressBar中滚动的块几个常用的属性 Style 确定显示的进度条控件的样式 注意进度条只能是水平方向的Maximum和Minimum 定义了两个值的范围用以表现人物的进度 Minimum值通常为0 Maximum值通常为指示任务完成的值 Value 表示应用程序在完成操作的过程中的进度 5 3 13进度条控件 为软件设置主菜单 常用工具栏 并添加一图片框 UpDown 日期 时间和进度条等控件 效果图如下 例题 Provider控件只能和其他空间一起使用 使窗体上的其他控件显示新属性 Provider控件在窗体上不可见 目前可以使用的3个空间是HelpProvider ToolTip和ErrorProvider 1 HelpProvider控件该控件可以让控件在按 F1 键后显示与上下文关联的有用帮助 添加了该空间后有几个新属性 见书P109 2 ToolTip控件添加后让鼠标在控件上停留时 会出现相关提示 3 ErrorProvider控件告诉用户 窗体上的控件出现了与之关联的错误 有3个新属性 见书P109 5 3 14Provider控件 5 3 15水平滚动条与垂直滚动条Minimum和Maximum属性确定用户可以选择的值范围LargeChange属性决定在滚动条之内但在滚动框之外单击的效果 SmallChange属性确定单击控件各端滚动箭头的效果 5 3 16Panel和GroupBox容器控件GroupBox控件总是有一个边框 需要时还可以带标题 Panel控件与GroupBox空间爱你的区别 Panel控件可以设置其BorderStyle属性来选择是否显示边框 默认值是不显示边框Panel控件把其AutoScroll属性设置为True 进行滚动 Panel控件不能设置标题 无Text属性 5 3 15其他几个控件 计时器控件 Timer 计时器 Timer 控件在工具箱的图标为 它是一种无需用户干预 按一定时间间隔周期性地自动触发事件的控件 一般用来检查系统时间 判断是否该执行某项任务 也可以用于后台处理 Timer控件在程序运行时是不可见的 所以将其添加到窗体后显示在窗体设计器下方的组件窗格中 Timer控件的主要属性 方法和事件见表 在计时器的Tick事件中设计的程序代码 会在该事件不断被触发的过程中 重复执行 从这一点看 计时器具有循环语句的功能 5 3 15其他几个控件 例 设计一个倒计时程序 用户在 倒计时 文本框输入倒计时的分钟数 按ENTER键开始倒计时 5 3 15计时器例题 添加代码以保证窗口被激活时txtNumber控件获得焦点 代码如下 privatevoidForm1 Activated objectsender System EventArgse txtNumber Focus 输入文本框获得焦点 用上面同样方法 选中txtNumber textBox3 控件 在如图所示的窗口中双击KeyPress 为控件txtNumber添加KeyPress 键盘事件 代码如下 privatevoidtxtNumber KeyPress objectsender System Windows Forms KeyPressEventArgse if e KeyChar r 按 Enter 键则执行下面的代码 开始倒计时 if txtNumber Text return remainder Convert ToUInt32 txtNumber Text 60 将分钟换算为秒timer2 Enabled false 第2个计时器终止工作timer1 Enabled true 第1个计时器开始工作lblTimeEnd Visible true 显示控件txtTimeEnd V

温馨提示

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

评论

0/150

提交评论