已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章窗体和简单的输入输出,Form对象的属性、方法和事件输入对话框和消息对话框编码风格,VB的窗体类型,SDI窗体(SingleDocumentInterface)程序运行中只有一个窗口被激活和显示MDI窗体(MultipleDocumentInterface)程序管理和显示多个窗口(比如word,一个父窗口中管理多个子窗口),VB的窗体(Form),常用属性:Caption控制窗体标题栏的文字BorderStyle控制窗体如何调整大小或不可调整MaxButton,MinButton是否能最大化和最小化StartPosition窗体在屏幕上的显示位置Moveable是否可移动WindowState启动时是最小化或最大化或正常Picture指定窗体内要显示的图片SetForm1.Picture=LoadPicture(“c:bkground.jpg”)Icon窗体最小化时的图标,BorderStyle属性,StartUpPosition属性,WindowState属性,窗体上的所有控件都是窗体对象的属性元素引用其它窗体控件(如果是当前窗体,则可省略窗体名)FormMain.txtName.Text=“Tom”txtName=“Tom”窗体和控件坐标Height,Width计量单位为缇Twip1英寸=1440Twip改变窗体的ScaleMode属性可设置为其它计量单位控件的Top,Left属性是相对窗体的坐标来定义,不是屏幕坐标,窗体上的控件,窗体的生命周期和事件,通常VB窗体在整个存活期有4种状态:创建状态加载状态可见状态卸载状态,创建Initialize事件,可见,加载Load事件,获得焦点Activate和GotFocus事件,失去焦点Deactivate和LostFocus事件,卸载QueryUnload和Load事件Terminate事件,不同状态下有不同的特征事件,状态的转换,窗体的创建,创建标志:Initialize事件Form_Initialize事件过程此种状态下:窗体的代码装入内存(在内存中创建了对象)窗体的控件(可视部分)未装入内存,不可见该阶段很短暂,很快自动进入加载状态。通常将一些初始化的操作放在该事件过程中。,加载方法:使用Load命令或自动加载加载事件:Load事件此种状态下:窗体的所有控件都装入内存,但窗体仍未显示,自动加载自动从创建状态进入加载状态,该窗体是启动窗体(自动可见),窗体的Show方法首先被调用(自动可见),首先被调用的是窗体内置的成员,如Move方法或操作其中某个控件的属性,用Load命令加载窗体,如LoadfrmSecond,加载窗体,【例】设计程序,使窗体一打开就在屏幕的右下角。除Left和Top属性以外,窗体没有其它属性来指定窗体位置,虽然“窗体布局”窗口可以设置窗体的启动位置,但为了精确可以用代码来完成(可以响应Load事件,因为此时界面还未显示):PrivateSubForm_Load()Form1.Top=Screen.HeightForm1.HeightForm1.Left=Screen.WidthForm1.WidthEndSub【提示】Screen是一个全局的系统对象,对应于计算机屏幕,可以直接使用。,窗体示例,可见状态,使用Show方法窗口即可见,或者直接进入自动可见frmMain.Show显示或隐藏窗体IfForm2.VisibleThenForm2.HideElseForm2.ShowEndIf模式窗体和无模式窗体Form1.Show1模式窗体不能将焦点切换到其它窗体Form1.Show0无模式窗体可以将焦点切换到其它窗体,可见状态的事件,改变焦点控制权事件:窗体的活动状态:Activate事件(获得控制权/焦点)Form1_Activate()MsgBox“Hello”EndSub窗体的非活动状态:Deactivate事件(失去控制权/焦点)Form1_DeActivate()MsgBox“Seeyoulater”EndSub此外,焦点事件会伴随以上两个事件发生:Activate紧跟着GotFocus事件,Deactivate事件前有一个LostFocus事件,卸载窗体,卸载方法:Unload命令或通过界面操作窗体关闭按钮实现自动卸载PrivateSubcmdExit_Click()UnloadmeEndSub或PrivateSubcmdExit_Click()UnloadfrmMainEndSub,卸载事件,Form_QueryUnload事件该事件过程发生在正式卸载之前,可为用户提供停止卸载的机会Form_QueryUnload(CancelAsInteger,UnloadmodeAsInteger)cancel,设置为非零值,可停止窗体的关闭unloadmode,指示引起此事件的原因如vbFormControlMenu,vbFormCode.*当使用End语句或在开发环境按“结束”按钮时,QueryUnload事件不会发生Form_Unload事件窗口确实要关闭时引发Unload事件,可以做最后的提示,如数据是否保存等,鼠标事件,【例】编写程序在窗口标题栏中显示鼠标当前的坐标位置。PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)Form1.Caption=鼠标事件演示水平坐标=&X&垂直坐标=&YEndSub提示:&是字符串连接操作符程序中只需要响应鼠标移动事件,事件过程中鼠标的坐标会通过参数X和Y传递进来,然后修改窗体标题即可。如果设置的是当前窗体的某些属性,可以省略窗体名,或用关键字Me来指代。如:Me.Caption=鼠标事件演示水平坐标=&X&垂直坐标=&Y,键盘事件,【例】编写程序利用键盘“+”和“-”实现窗口的变大和变小。PrivateSubForm_KeyPress(KeyAsciiAsInteger)SelectCaseKeyAsciiCaseAsc(+)Me.Width=Me.Width*1.05Me.Height=Me.Height*1.05CaseAsc(-)Me.Width=Me.Width*0.95Me.Height=Me.Height*0.95EndSelectEndSub由于参数KeyAscii是一个整数的Ascii码,所以将“+”和“-”字符转换为对应的Ascii码后再作比较。,窗体的KeyPreview属性,注意:如果设计的是一个空白的窗体,窗体能正常响应键盘事件,而不需要任何额外的设置。但是如果窗体中放置了控件(尝试放一个TextBox控件),则程序运行后,输入焦点会位于控件上,焦点控件对于键盘事件有优先响应的权利,窗体就无法接受到键盘事件了。这时只需要简单地将窗体的KeyPreview属性设置为True,那么在控件的键盘事件发生之前会激活窗体的键盘事件。,Resize事件,当窗口第一次显示或窗口大小改变时该事件发生。例如当窗口调整大小时,可用Resize事件过程来移动窗口中的控件位置或调整其大小,使界面保持美观。【例】设计包含一个TextBox控件的窗体,要求该控件总是充满整个窗口。(其中可以用到窗体的ScaleWidth和ScaleHeigth属性,他们代表窗口内部绘图区域的宽度和高度。)代码如下:PrivateSubForm_Resize()Text1.Move0,0,Me.ScaleWidth,Me.ScaleHeightEndSub,设计多个窗体的应用程序,执行菜单命令“工程|添加窗体”可以让一个应用程序包含多个不同界面的窗体。当需要显示某个窗体时,使用该窗体的Show方法,如Form2.Show;需要关闭某个窗体时,使用Unload命令,如UnloadForm2。,设置启动窗体,多个窗体的应用程序必须指定一个启动窗体有启动窗体默认情况下是第一个创建的窗体,否则:在“工程”菜单中,选“工程属性”选“通用”选项卡在“启动”列表框中,选中所要窗体,*如果需要程序启动时的快速显示窗体*可以使用“Splash屏幕”模板创建一个启动屏幕窗体,不使用启动窗体在标准模块(.bas)中定义主过程Main(类似C的main)SubMain().EndSub在“启动”列表框中,选中“SubMain”,结束应用程序,以下三种方法可以结束程序:End语句,使应用程序立即结束,所有对象都释放,不触发Unload和QueryUnload事件只有一个窗体,在窗体代码中使用Unloadme语句程序有多个窗体,使用Forms集合和Unload语句(此方法不常用)Fori=0toForms.Count-1UnloadForms(i)Next,消息框MsgBox,消息框的组成:图标消息正文命令按钮消息标题,消息框之消息正文,MsgBox(prompt,buttons,title,helpfile,context)prompt对话框中显示的消息如果有多行信息,则每行结尾加上回车符chr(10)和换行符chr(13),或者常量vbCrlf如:“但愿人长久”&chr(10)&chr(13)&“千里共婵娟”“但愿人长久”&vbCrlf&“千里共婵娟”提示:函数chr(65)将Ascii码转换为字符,Asc(“A”)将字符转换为Ascii码,buttons指定显示按钮的数目和形式,图标样式,默认按钮等,有以下四组取值:vbOKOnly,vbOKCancel,vbYesNo,vbRetryCancel.按钮样式vbCritical,vbQuestion,vbInformation.图标样式vbDefaultButton1,vbDefaultButton2.默认按钮vbApplicationModal,vbSystemModal强制返回性Buttons的取值是由每组类型的参数中取一个值,然后相加,消息框之命令按钮,title:可选,对话框的标题,如省略标题则为应用程序名返回值vbOK,vbCancel,vbAbort,vbRetry,vbIgnore,vbYes,vbNo,消息框之标题和返回值,BackString=InputBox(prompt,title,default,xpos,ypos,helpfile,context)BackString对话框中的返回值prompt对话框中显示的提示信息,必选项title可选,对话框的标题,缺省标题为应用程序名default可选,输入文本框中的缺省值xpos,ypos对话框与屏幕左边和上边的距离如:DimstrNameAsStringstrName=InputBox(“请输入用户名:”,“用户登录”,“manager”,800,800),输入对话框,【例】输入任意一个数字,输出其二次方结果。PrivateSubForm_Click()DimnumAsIntegernum=InputBox(“请输入数字)Printnum*numEndSub提示:虽然Print方法是窗体的方法,但在当前窗体下,可以省略窗体名。此外使用Cls方法可以清除窗体,窗体的Print方法,书写代码的规则,1不区分大小写在VB中所有的关键
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026卫生资格护理学副高职称历年考试试题及答案解析
- 2026年云南公务员真题和答案
- 水上光伏发电项目水资源论证报告书
- 2026年辽宁省事业单位招聘考试面试真题及答案
- 2026年疾控中心公共卫生考核试题题库及答案
- 2026年广西交安考试案例题库及答案
- 2026贵州鑫旅途旅行社有限责任公司劳务外包招聘1人笔试参考试题
- 企业偿债压力缓释方案
- 2025吉林四平市伊通满族自治县农村信用合作联社农村信贷员定向招聘35人笔试历年典型考题及考点剖析附带答案详解
- 2025南昌华路建设咨询监理有限公司招聘39人笔试历年备考题库附带答案详解
- 江苏省淮安市淮阴师范学院第一附属小学2025-2026学年三下数学期末考试试题(含答案解析)
- 2025年遴选教育事业真题及答案
- 2026年山东省中考数学试卷(含答案及解析)
- 2026年高考真题-数学(全国二卷) 含解析
- 《商务数据采集与处理》课件 第1节:采集基础
- 电机与拖动(高职)全套教学课件
- 木制家具行业隐患排查整改清单
- 13J104《蒸压加气混凝土砌块、板材构造》
- 手拉葫芦安全使用培训课件
- 安徽建筑大学辅导员考试试题2023
- 水下地形测量技术设计书2
评论
0/150
提交评论