




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六讲第六讲窗体、控件和组件2回顾 q 属性通过使用访问器读写类中的字段,对字段进行保护。q 属性分为以下三种不同的类型:q 读/写属性q 只读属性q 只写属性q 可以在类中定义索引器,允许使用下标对该类对象中的数据进行访问q 索引器必须总是命名为 this,因为对它们的访问是通过其所属的对象进行的q 委托包含对方法而不是方法名称的引用q c# 中的事件允许一个对象将发生的事件或修改通知其他对象第6章 窗体、控件和组件6.1 窗体与对话框6.2 控件共有的基本操作6.3 容器类控件和组件6.4 文本操作类控件6.5 选择操作类控件6.6 图像操作类控件和组件6.7 菜单、工具栏与状态栏6.8
2、视图操作类控件6.9 其他常用控件4目标q理解 windows 窗体q使用基本控件如标签、文本、按钮、列表框和组合框q掌握窗体的常用属性和方法5简介 3-1gui界面控件6简介 3-2 各种控件属性放置控件的区域7简介 3-3winforms应用程序可能存在多个窗体,用于获取用户输入的数据和向用户显示数据system.windows.forms 简单而强大 改善了接口和基类 intellisense 新的管理数据提供程序 安全 灵活的控件 通晓数据 向导8创建 winforms应用程序 6-1“开始”“程序”“microsoft visual studio.net 2003”“microsof
3、t visual studio.net 2003”9创建 winforms应用程序 6-2设计窗口 10创建 winforms应用程序 6-3using system;using system.drawing;using system.collections;using system.componentmodel;using system.windows.forms;namespace sampleproject/ / form1 的摘要说明。/ public class form1 : system.windows.forms.form/ / 必需的设计器变量./ 提供了大量绘图工具的访问权
4、限基础核心命名空间arraylist、bitarray、hashtable、stack、stringcollection 和 stringtable 类 大量窗体和控件从 system.windows.forms.form 派生visual studio .net 生成的代码11创建 winforms应用程序 6-4private system.componentmodel.container components = null;public form1()/ windows 窗体设计器支持所必需的/initializecomponent();/ todo:在 initializecompon
5、ent 调用之后添加任何构造函数代码/构造函数调用 initializecomponent() 方法private void initializecomponent() ponents = new system.componentmodel.container(); this.size = new system.drawing.size(300,300); this.text = form1;项目的容器12创建 winforms应用程序 6-5/ / 清理所有正在使用的资源。/ protected override void dispose( bool disposing )if( dispo
6、sing )if(components != null)components.dispose();base.dispose( disposing );释放系统资源13创建 winforms应用程序 6-6stathreadstatic void main()application.run(new form1();程序的主入口点 14winforms 中的常用控件 2-1可视化界面组件统称为控件system.windows.forms.control system.windows.formscontrolbuttonbasebuttoncheckboxlabellistcontrolcombob
7、oxlistboxtextboxbasetextboxradiobutton6.1 窗体与对话框1、窗体应用程序的启动和停止使用application类提供的静态方法来启动、停止应用程序。application类提供的方法:qrun方法:用于在当前线程上启动应用程序消息循环,并显示窗体。qexit方法:用于停止消息循环。qdoevents方法:用于在程序处于某个循环中时处理消息。6.1.2 窗体的创建、显示与隐藏1、如何在代码中打开一个新窗体 form2 fm = new form2(); fm.show(); /或者fm.showdialog();2、如何在代码中关闭一个窗体 用法1:fm.
8、close(); 用法2:this.close(); 用法3:application.openformsform1.close();3、如何隐藏一个打开的窗体 (1)隐藏当前窗体:this.hide(); (2)隐藏其它窗体:application.openformsform1.hide();4、如何重新显示隐藏的窗体 (1)显示当前窗体:this.show(); (2)显示其它窗体:application.openformsform1.show();17窗体容器简介 2-1 图标系统按钮system.windows.formscontrolscrollablecontrolcontainer
9、controlform标题栏控件18窗体容器简介 2-2l sdi 单文档界面l mdi 多文档界面l 模式窗口19显示另一窗体被调用的窗体类 窗体实例 = new 被调用的窗体类();窗体实例.show();private void cmdshow_click(object sender, system.eventargs e)frma a = new frma();a.show();6.1.2 窗体的创建、显示与隐藏【例6-1】演示窗体的基本用法以及如何显示和关闭窗体。部分运行效果如图:6.1.3 窗体常用的属性常用属性:qname:获取或设置窗体的名称,代码中通过该属性来访问窗体。qba
10、ckcolor:获取或设置窗体的背景色。qforecolor:获取或设置窗体上文本的前景色。qlocation:获取或设置以屏幕坐标表示的代表窗体左上角的坐标位置。qsize:指定窗体的高度和宽度。qtext:设置控件上所要显示的文本,如标签、按钮和复选框等控件上的文字。22窗体的常用方法和事件 方法方法activatelayoutmdishowdialog事件事件activatedclosedclosingload窗体常用的属性和外观控制startpostion:获取或设置运行时窗体的起始位置,一般在构造函数中设置此属性。例如:this.startposition = formstartpo
11、sition.manual;this. location = new point(screenx, screeny);通过设置窗体的【controlbox】属性为“true”或者“false”,可以控制是否显示最大化、最小化以及关闭按钮。除此之外,还可以通过设置窗体的【formborderstyle】属性控制窗体的边框样式。6.1.4 窗体位置及外观控制【例6-2】演示如何控制窗体的显示位置以及如何控制窗体的外观形状。设计视图如下:运行效果如下:运行效果如下:6.1.5 单文档窗体和多文档窗体windows的窗体分为单文档窗体和多文档窗体。多文档窗体(multi-document interf
12、ace, mdi)是指在一个主窗体中可以包含一个或多个子窗体的窗体,主窗体称为mdi父窗体,子窗体称为mdi子窗体。6.1.5 单文档窗体和多文档窗体【例6-3】演示mdi窗体的基本用法以及如何显示和关闭子窗体。6.1.6 对话框q对话框用于与用户交互和检索信息。q对话框分为标准对话框和自定义对话框。1messagebox对话框 调用messagebox类的静态show方法来显示消息对话框。返回值是messageboxresult枚举的值,其中每个值都等同于消息对话框可以显示的按钮之一。 show方法提供了多种重载形式,常用的重载形式有:qpublic static dialogresult
13、show(string text)qpublic static dialogresult show(string text, string caption)qpublic static dialogresult show(qstring text, string caption, messageboxbuttons buttons, messageboxicon icon)6.1.6 对话框qtext:在消息框中显示的文本。qcaption:在消息框的标题栏中显示的文本。qbuttons:messageboxbuttons枚举值之一,指定在消息框中显示哪些按钮。枚举值有ok、okcancel、
14、yesnocancel和yesno。qicon:messageboxicon枚举值之一,指定在消息框中显示哪个图标。枚举值有none(不显示图标)、hand(手形)、question(问号)、exclamation(感叹号)、asterisk(星号)、stop(停止)、error(错误)、warning(警告)和information(信息)。qshow方法的返回值是dialogresult枚举值之一。dialogresult枚举值有:none(消息框未返回值)、ok、cancel、yes和no。通用对话框qopenfiledialogqsavefiledialogqprintdialogqf
15、ontdialogqcolordialog6.1.6 对话框6.1.6 对话框2.colordialog:提供颜色选择。 方法:showdialog() 返回值:dialogresult类型3.fontdialog:提供字体选择。 方法:showdialog() 返回值:dialogresult类型用法如下:colordialog colordlg = new colordialog( );if (colordlg.showdialog( ) = dialogresult.ok) textbox1.forecolor = colordlg.color; 6.1.6 对话框q自定义窗体对话框的设
16、计方法与设计一般窗体基本相同,不同之处是还要对自定义窗体对话框作如下处理:q将窗体的【formborderstyle】属性更改为“fixeddialog”。q将窗体的【maximizebox】属性、【minimizebox】属性和【controlbox】属性设置为“false”。q在窗体上放一个“确定”按钮,一个“取消”按钮。然后将窗体的【acceptbutton】属性设置为“确定”按钮,【cancelbutton】属性设置为“取消”按钮。q在按钮事件中,设置dialogresult类型的返回值,以便让对话框隐藏起来。6.1.6 对话框【例6-4】自定义窗体对话框的用法。 设计视图如下:运行效
17、果如下:运行效果如下:6.2 控件共有的基本操作6.2.1 控件中常用的属性和方法1.常用基本属性 除了书上讲的属性外,注意以下属性的用法:1) (name):指定控件的名称,它是控件在当前应用程序中的唯一标识,代码通过该属性来访问控件2) enabled:决定控件是否可用,取值为true时可用,取值为false时不可用3)anchor属性:保持控件与边框的距离不变4)dock属性:让控件始终紧靠边框6.2.1 控件中常用的属性和方法2.将窗体中控件的背景色设置为“transparent”,则该控件相对于其父容器是透明的。【例6-5】将图像和文字叠加在同一幅背景图上,让其看起来像是一幅图。未设
18、置未设置backcolor属性时的设计界面属性时的设计界面 设置设置backcolor属性后的界面效果属性后的界面效果6.2.1 控件中常用的属性和方法3.按住键同时选中多个控件,然后利用“布局”快捷工具栏中的快捷方式可以快速让各控件对齐。4.利用布局工具栏中的“键顺序”按钮,可以在设计界面下调整焦点顺序。6.2.2 控件的锚定和停靠1anchor属性【anchor】属性定义控件的定位点位置。当控件锚定到某个窗体时,如果用户调整该窗体的大小,该控件将维持它与定位点位置之间的距离不变。2. dock属性【dock】属性的用途是使控件与窗体边缘对齐。此属性指定控件在窗体中的驻留位置。【dock】属
19、性设置为下列值:q left停靠到窗体的左侧。q right停靠到窗体的右侧。q top停靠到窗体的顶部。q bottom停靠到窗体底部。q fill占据窗体中的所有剩余空间。q none不在任何位置停靠,它显示在由location属性指定的位置。6.2.3 常用的鼠标事件和键盘事件1.鼠标事件qclick 单击鼠标左键时触发qmousedoubleclick 双击鼠标左键时触发qmouseenter 鼠标进入控件可见区域时触发qmousemove 鼠标在控件区域内移动时触发qmouseleave 鼠标离开控件可见区域时触发2.键盘事件qkeydown 按下键盘上某个键时触发qkeyup 释放
20、键盘上的按键时触发qkeypress 在keydown之后keyup之前触发,非字符键不会触发该事件。6.2.3 常用的鼠标事件和键盘事件【例6-6】演示鼠标和键盘事件的触发条件,触发顺序,并显示各个事件所传递的参数内容。设计界面如下:40winforms 中的常用控件 2-2 标签按钮组合框列表框文本框41标签属性说明text该属性用于设置或获取与该控件关联的文本方法说明 hide隐藏控件,调用该方法时,即使 visible 属性设置为 true,控件也不可见 show 相当于将控件的 visible 属性设置为 true 并显示控件事件说明 click用户单击控件时将发生该事件textbo
21、x属性/方法qtextbox 控件允许用户在应用程序中输入文本。此控件具有标准 windows 文本框控件所没有的附加功能,包括多行编辑和密码字符屏蔽。q可以使用 multiline 和 scrollbars 属性,从而能够显示或输入多行文本。q通过将 maxlength 属性设置为一个特定的字符数,可以限制输入到 textbox 控件中的文本数量。q使用 passwordchar 属性屏蔽在控件的单行版本中输入的字符。43文本框属性说明maxlength 可在文本框中输入的最大字符数 multiline 表示是否可在文本框中输入多行文本 passwordchar 机密和敏感数据,密码输入字符
22、 readonly 文本框中的文本为只读text 检索在控件中输入的文本方法说明 clear删除现有的所有文本 事件说明keypress用户按一个键结束时将发生该事件 44按钮属性说明enabled确定是否可以启用或禁用该控件方法说明performclick button 控件的 click 事件 事件说明click单击按钮时将触发该事件45列表框属性属性itemsselectionmode selectedindex selecteditemselecteditems text 方法方法clearselected事件事件selectedindexchanged 46使用列表框private
23、void frmuseradd_load(object sender, system.eventargs e)this. lstcurrdeptname.items.add(软件部); this. lstcurrdeptname.items.add(硬件部); this. lstcurrdeptname.items.add(财务部); this. lstcurrdeptname.items.add(人事部); private void cmdok_click(object sender, system.eventargs e)/注意selectedindex的值,第一个应该为0if (this
24、. lstcurrdeptname.selectedindex =0) messagebox.show(this. lstcurrdeptname.text + 已经选择上.,当前选择的值); 47组合框属性说明dropdownstyle combobox 控件的样式maxdropdownitems 下拉区显示的最大项目数方法说明select在 combobox 控件上选定指定范围的文本48使用组合框private void frmuseradd_load(object sender, system.eventargs e)this.cbodesig.items.add(总裁); this.
25、cbodesig.items.add(副总裁); this. cbodesig.items.add(首席执行官); this. cbodesig.items.add(经理); /默认的选择是产品部this. cbodesig.selectedindex = 1;private void cbodesig_selectedindexchanged(object sender, system.eventargs e)messagebox.show( 选择的是第“+ (this.cbodesig.selectedindex+1).tostring(), 选择的信息);messagebox.show(
26、 选择的职务是“ + this.cbodesig.text, 选择的信息);49消息框窗口 2-1messagebox.show(“消息文本);消息框用于显示消息abort, cancel, ignore, no, none, ok, retry 和 yes if (messagebox.show(“保存文件”,“保存, messageboxbuttons.yesno, messageboxicon.information, messageboxdefaultbutton.button1) = dialogresult.yes)/保存文件所用的代码/保存后的 messagebox50消息框窗口
27、 2-2重载方法重载方法show(string text);show(string text, string caption);show(string text, string caption, messageboxbuttons buttons);show(string text, string caption, messageboxbuttons buttons, messageboxicon icon);51应用程序示例 3-1 解决方案资源管理器属性窗口工具箱52应用程序示例 3-2private void btnadd_click(object sender, system.even
28、targs e)private void btnadd_click(object sender, system.eventargs e)this.txtempname.enabled=true;this.txtaddress.enabled=true;this.cbodesignation.enabled=true;this.lstcurrdeptname.enabled=true;private void btncancel_click(object sender, system.eventargs e)this.txtempname.text=;this.txtaddress.text=;
29、this.cbodesignation.text=“经理;private void btnexit_click (object sender, system.eventargs e)string str=;for(int ctr=0;ctr oldvalue) grpgeneral.top = grpgeneral.top - (int)(vscrollmultiplier * vabspos); piclogo.top = piclogo.top - (int)(vscrollmultiplier * vabspos); grpgender.top = grpgender.top - (in
30、t)(vscrollmultiplier * vabspos);应用程序示例 9-7检查滚动方向96应用程序示例 9-8btnnext.top = btnnext.top - (int)(vscrollmultiplier * vabspos);elseif (vsbpersonal.value oldvalue) grpgeneral.top = grpgeneral.top + (int)(vscrollmultiplier * vabspos); piclogo.top = piclogo.top + (int)(vscrollmultiplier * vabspos); grpgend
31、er.top = grpgender.top + (int)(vscrollmultiplier * vabspos);btnnext.top = btnnext.top + (int)(vscrollmultiplier * vabspos);oldvalue = vsbpersonal.value;检查滚动方向(续)97应用程序示例 9-9 q编写以下自定义方法以便计算垂直滚动量private void setverticalscrollmultiplier(control ctrl) float hsb = (float)(vsbpersonal.height - ctrl.height
32、);float ticks = (float)(vsbpersonal.maximum - vsbpersonal.minimum);vscrollmultiplier = hsb / ticks;6.7 菜单与工具栏6.7.1 menustrip控件menustrip控件用于设计菜单。菜单的组成: 主菜单项 下拉菜单 子菜单项 菜单栏 分隔条 6.7.1 menustrip控件qmenustrip控件的常用属性 (1) dock:指示菜单栏在窗体中停靠的位置,默认值为top。 (2) items:菜单栏上显示的各菜单项。qmenuitem菜单项的常用属性(1) displaystyle:菜单
33、项上的显示样式。(2) image:指定在该菜单项上显示的图标。(在c:program filesmicrosoft visual studio 8common7vs2005imagelibrary下有一个.zip文件,内有各种动画文件、图像文件和图标文件,例如展开后在目录bitmapscommandspngformat下有打开、保存等图像。)(3) shortcutkeys:快捷键。qmenuitem菜单项的常用事件click事件6.7.2 contextmenustrip控件q用于制作右键快捷菜单q使用该控件的关键是将需要显示快捷菜单的控件的contextmenustrip属性设置为添加的
34、contextmenustrip控件对象。q除了是右键弹出外,其他用法与menustrip相同。6.7.3 toolstrip控件1. toolstrip控件的作用是为windows应用程序添加工具栏。工具栏一般是由多个按钮、标签等排列组成,通过这些项可以快速地执行程序提供的一些常用命令,比使用菜单选择更加方便快捷。 2. toolstrip控件的常用属性和事件与menustrip控件基本相同,工具栏上各项的属性和事件与menustrip控件中菜单项基本相同。6.7.4 statusstripqstatusstrip控件的作用是向窗体中添加状态栏,状态栏一般由文本提示信息组成。qstatusstrip控件一般由toolstripstatuslabel对象组成,每个这样的对象都可以显示文本、图标或者同时显示文本和图像。6.7.4 statusstrip【例6-16】演示菜单与工具栏相关控件的用法。设计界面设计界面 运行界面运行界面6.8 视图类控件6.8.1 列表视图控件(listview)qlistview(列表视图)控件用列表的形式显示一组数据,每项数据都是一个listitem类型的对象,称之为项,同时每个项还可能会有多个描述的子项。q一般使用listview来显示分类查询及其详细信息。q常见属性:表6-17。6.8.1 列表视图控件(l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商务咨询费合同范本
- 销售返利合作合同范本
- 婚庆合同范本简单版
- 保安公司终止合同范本
- 包子的分销合同范本
- 工程机电框架合同范本
- 能源设备采购合同范本
- 公司购买汽车合同范本
- 民间借款制式合同范本
- 小区楼房出售合同范本
- 老年人合理用药培训
- 《国有企业采购管理规范》解读
- 2025届山东省德州一中高三毕业班第三次统测物理试题含解析
- 小学形容词副词单选题200道及答案(完整版)
- 抖音账号运营的工作计划
- 2025届辽宁省辽南协作校高一物理第二学期期末考试试题含解析
- 建筑地基处理技术规范DBJ-T 15-38-2019
- 中国律师学 课件 陈卫东 第1-9章 律师制度的产生和发展-律师的管理
- 《燃煤火力发电企业设备检修导则》
- (2024年)物联网车联网
- 胖东来服务管理手册
评论
0/150
提交评论