VB窗体和简单的输入输出.ppt_第1页
VB窗体和简单的输入输出.ppt_第2页
VB窗体和简单的输入输出.ppt_第3页
VB窗体和简单的输入输出.ppt_第4页
VB窗体和简单的输入输出.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

第三章 窗体和简单的输入输出,Form对象的属性、方法和事件 输入对话框和消息对话框 编码风格,VB的窗体类型,SDI窗体(Single Document Interface) 程序运行中只有一个窗口被激活和显示 MDI窗体(Multiple Document Interface) 程序管理和显示多个窗口(比如word,一个父窗口中管理多个子窗口),VB的窗体(Form),常用属性: Caption 控制窗体标题栏的文字 BorderStyle 控制窗体如何调整大小或不可调整 MaxButton,MinButton 是否能最大化和最小化 StartPosition 窗体在屏幕上的显示位置 Moveable 是否可移动 WindowState 启动时是最小化或最大化或正常 Picture 指定窗体内要显示的图片 Set Form1.Picture = LoadPicture(“c:bkground.jpg”) Icon 窗体最小化时的图标,BorderStyle属性,StartUpPosition属性,WindowState属性,窗体上的所有控件都是窗体对象的属性元素 引用其它窗体控件(如果是当前窗体,则可省略窗体名) FormMain.txtName.Text = “Tom” txtName = “Tom” 窗体和控件坐标 Height,Width计量单位为缇Twip 1英寸=1440Twip 改变窗体的ScaleMode属性可设置为其它计量单位 控件的Top, Left属性是相对窗体的坐标来定义,不是屏幕坐标,窗体上的控件,窗体的生命周期和事件,通常VB窗体在整个存活期有4种状态: 创建状态 加载状态 可见状态 卸载状态,创建 Initialize事件,可见,加载 Load事件,获得焦点 Activate和GotFocus事件,失去焦点 Deactivate和LostFocus事件,卸载 QueryUnload和Load事件 Terminate事件,不同状态下有不同的特征事件,状态的转换,窗体的创建,创建标志: Initialize事件 Form_Initialize事件过程 此种状态下: 窗体的代码装入内存(在内存中创建了对象) 窗体的控件(可视部分)未装入内存,不可见 该阶段很短暂,很快自动进入加载状态。通常将一些初始化的操作放在该事件过程中。,加载方法: 使用Load命令或自动加载 加载事件: Load事件 此种状态下: 窗体的所有控件都装入内存,但窗体仍未显示,自动加载 自动从创建状态进入加载状态,该窗体是启动窗体(自动可见),窗体的Show方法首先被调用(自动可见),首先被调用的是窗体内置的成员,如Move方法或操作其中某个控件的属性,用Load命令加载窗体,如Load frmSecond,加载窗体,【例】设计程序,使窗体一打开就在屏幕的右下角。 除Left和Top属性以外,窗体没有其它属性来指定窗体位置,虽然“窗体布局”窗口可以设置窗体的启动位置,但为了精确可以用代码来完成 (可以响应Load事件,因为此时界面还未显示): Private Sub Form_Load () Form1.Top = Screen.Height Form1.Height Form1.Left = Screen.Width Form1.Width End Sub 【提示】Screen是一个全局的系统对象,对应于计算机屏幕,可以直接使用。,窗体示例,可见状态,使用Show方法窗口即可见,或者直接进入自动可见 frmMain.Show 显示或隐藏窗体 If Form2.Visible Then Form2.Hide Else Form2.Show End If 模式窗体和无模式窗体 Form1.Show 1 模式窗体 不能将焦点切换到其它窗体 Form1.Show 0 无模式窗体 可以将焦点切换到其它窗体,可见状态的事件,改变焦点控制权事件: 窗体的活动状态:Activate事件 (获得控制权/焦点) Form1_Activate() MsgBox “Hello” End Sub 窗体的非活动状态:Deactivate事件 (失去控制权/焦点) Form1_DeActivate() MsgBox “See you later” End Sub 此外,焦点事件会伴随以上两个事件发生:Activate紧跟着 GotFocus事件,Deactivate事件前有一个LostFocus事件,卸载窗体,卸载方法: Unload命令或通过界面操作窗体关闭按钮实现自动卸载 Private Sub cmdExit_Click() Unload me End Sub 或 Private Sub cmdExit_Click() Unload frmMain End Sub,卸载事件,Form_QueryUnload事件 该事件过程发生在正式卸载之前,可为用户提供停止 卸载的机会 Form_QueryUnload(Cancel As Integer, Unloadmode As Integer) cancel ,设置为非零值,可停止窗体的关闭 unloadmode,指示引起此事件的原因 如 vbFormControlMenu,vbFormCode. *当使用End语句或在开发环境按“结束”按钮时, QueryUnload事件不会发生 Form_Unload事件 窗口确实要关闭时引发Unload 事件,可以做最后的提 示,如数据是否保存等,鼠标事件,【例】编写程序在窗口标题栏中显示鼠标当前的坐标位置。 Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Form1.Caption = “鼠标事件演示 水平坐标=“ & X & “垂直坐标=“ & Y End Sub 提示:&是字符串连接操作符 程序中只需要响应鼠标移动事件,事件过程中鼠标的坐标会通过参数X和Y传递进来,然后修改窗体标题即可。如果设置的是当前窗体的某些属性,可以省略窗体名,或用关键字Me来指代。如: Me.Caption = “鼠标事件演示 水平坐标=“ & X & “垂直坐标=“ & Y,键盘事件,【例】编写程序利用键盘“+”和“-”实现窗口的变大和变小。 Private Sub Form_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case Asc(“+“) Me.Width = Me.Width * 1.05 Me.Height = Me.Height * 1.05 Case Asc(“-“) Me.Width = Me.Width * 0.95 Me.Height = Me.Height * 0.95 End Select End Sub 由于参数KeyAscii是一个整数的Ascii码,所以将“+”和“-”字符转换为对应的Ascii码后再作比较。,窗体的KeyPreview属性,注意:如果设计的是一个空白的窗体,窗体能正常响应键盘事件,而不需要任何额外的设置。但是如果窗体中放置了控件(尝试放一个TextBox控件),则程序运行后,输入焦点会位于控件上,焦点控件对于键盘事件有优先响应的权利,窗体就无法接受到键盘事件了。这时只需要简单地将窗体的KeyPreview属性设置为True,那么在控件的键盘事件发生之前会激活窗体的键盘事件。,Resize事件,当窗口第一次显示或窗口大小改变时该事件发生。 例如当窗口调整大小时,可用Resize事件过程来移动窗口中的控件位置或调整其大小,使界面保持美观。 【例】设计包含一个TextBox控件的窗体,要求该控件总是充满整个窗口。(其中可以用到窗体的ScaleWidth和ScaleHeigth属性,他们代表窗口内部绘图区域的宽度和高度。) 代码如下: Private Sub Form_Resize() Text1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight End Sub,设计多个窗体的应用程序,执行菜单命令“工程|添加窗体”可以让一个应用程序包含多个不同界面的窗体。 当需要显示某个窗体时,使用该窗体的Show方法,如Form2.Show;需要关闭某个窗体时,使用Unload命令,如Unload Form2。,设置启动窗体,多个窗体的应用程序必须指定一个启动窗体 有启动窗体 默认情况下是第一个创建的窗体,否则: 在“工程”菜单中,选“工程属性” 选“通用”选项卡 在“启动”列表框中,选中所要窗体,*如果需要程序启动时的快速显示窗体* 可以使用“Splash屏幕”模板创建一个启动屏幕窗体,不使用启动窗体 在标准模块(.bas)中定义主过程Main(类似C的main) Sub Main() . End Sub 在“启动”列表框中,选中“Sub Main”,结束应用程序,以下三种方法可以结束程序: End语句,使应用程序立即结束,所有对象都释放,不触发Unload和QueryUnload事件 只有一个窗体,在窗体代码中使用Unload me语句 程序有多个窗体,使用Forms集合和Unload语句(此方法不常用) For i=0 to Forms.Count -1 Unload Forms(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 对话框与屏幕左边和上边的距离 如: Dim strName As String strName = InputBox(“请输入用户名:”, “用户登录”, “manager”, 800, 800),输入对话框,【例】输入任意一个数字,输出其二次方结果。 Private Sub Form_Click() Dim num As Integer num = InputBox(“请输入数字“) Print num * num End Sub 提示:虽然Print方法是窗体的方法,但在当前窗体下,可以省略窗体名。此外使用Cls方法可以清除窗体,窗体的Print方法,书写代码的规则,1不区分大小写 在VB

温馨提示

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

最新文档

评论

0/150

提交评论