窗体和简单的输入输出.ppt

上传人:小飞机 文档编号:6482125 上传时间:2023-11-04 格式:PPT 页数:32 大小:210KB
返回 下载 相关 举报
窗体和简单的输入输出.ppt_第1页
第1页 / 共32页
窗体和简单的输入输出.ppt_第2页
第2页 / 共32页
窗体和简单的输入输出.ppt_第3页
第3页 / 共32页
窗体和简单的输入输出.ppt_第4页
第4页 / 共32页
窗体和简单的输入输出.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《窗体和简单的输入输出.ppt》由会员分享,可在线阅读,更多相关《窗体和简单的输入输出.ppt(32页珍藏版)》请在三一办公上搜索。

1、第三章 窗体和简单的输入输出,Form对象的属性、方法和事件输入对话框和消息对话框编码风格,VB的窗体类型,SDI窗体(Single Document Interface)程序运行中只有一个窗口被激活和显示MDI窗体(Multiple Document Interface)程序管理和显示多个窗口(比如word,一个父窗口中管理多个子窗口),VB的窗体(Form),常用属性:Caption 控制窗体标题栏的文字BorderStyle 控制窗体如何调整大小或不可调整MaxButton,MinButton 是否能最大化和最小化StartPosition 窗体在屏幕上的显示位置Moveable 是否可

2、移动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属性可设置

3、为其它计量单位 控件的Top,Left属性是相对窗体的坐标来定义,不是屏幕坐标,窗体上的控件,窗体的生命周期和事件,通常VB窗体在整个存活期有4种状态:创建状态加载状态可见状态卸载状态,创建Initialize事件,可见,加载Load事件,获得焦点Activate和GotFocus事件,失去焦点Deactivate和LostFocus事件,卸载QueryUnload和Load事件Terminate事件,不同状态下有不同的特征事件,状态的转换,窗体的创建,创建标志:Initialize事件 Form_Initialize事件过程此种状态下:窗体的代码装入内存(在内存中创建了对象)窗体的控件(可视

4、部分)未装入内存,不可见该阶段很短暂,很快自动进入加载状态。通常将一些初始化的操作放在该事件过程中。,加载方法:使用Load命令或自动加载加载事件:Load事件此种状态下:窗体的所有控件都装入内存,但窗体仍未显示,自动加载自动从创建状态进入加载状态,该窗体是启动窗体(自动可见),窗体的Show方法首先被调用(自动可见),首先被调用的是窗体内置的成员,如Move方法或操作其中某个控件的属性,用Load命令加载窗体,如Load frmSecond,加载窗体,【例】设计程序,使窗体一打开就在屏幕的右下角。除Left和Top属性以外,窗体没有其它属性来指定窗体位置,虽然“窗体布局”窗口可以设置窗体的启

5、动位置,但为了精确可以用代码来完成(可以响应Load事件,因为此时界面还未显示):Private Sub Form_Load()Form1.Top=Screen.Height Form1.Height Form1.Left=Screen.Width Form1.WidthEnd Sub【提示】Screen是一个全局的系统对象,对应于计算机屏幕,可以直接使用。,窗体示例,可见状态,使用Show方法窗口即可见,或者直接进入自动可见frmMain.Show显示或隐藏窗体If Form2.Visible ThenForm2.HideElseForm2.ShowEnd If模式窗体和无模式窗体 Form

6、1.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事件,卸载窗体,卸载方法:Unl

7、oad命令或通过界面操作窗体关闭按钮实现自动卸载Private Sub cmdExit_Click()Unload meEnd Sub或Private Sub cmdExit_Click()Unload frmMainEnd Sub,卸载事件,Form_QueryUnload事件该事件过程发生在正式卸载之前,可为用户提供停止卸载的机会Form_QueryUnload(Cancel As Integer,Unloadmode As Integer)cancel,设置为非零值,可停止窗体的关闭unloadmode,指示引起此事件的原因如 vbFormControlMenu,vbFormCode.*

8、当使用End语句或在开发环境按“结束”按钮时,QueryUnload事件不会发生Form_Unload事件窗口确实要关闭时引发Unload 事件,可以做最后的提示,如数据是否保存等,鼠标事件,【例】编写程序在窗口标题栏中显示鼠标当前的坐标位置。Private Sub Form_MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single)Form1.Caption=鼠标事件演示 水平坐标=&X&垂直坐标=&YEnd Sub提示:&是字符串连接操作符程序中只需要响应鼠标移动事件,事件过程中鼠标的坐标会通过参数X和Y传递进

9、来,然后修改窗体标题即可。如果设置的是当前窗体的某些属性,可以省略窗体名,或用关键字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.

10、95 End SelectEnd Sub由于参数KeyAscii是一个整数的Ascii码,所以将“+”和“-”字符转换为对应的Ascii码后再作比较。,窗体的KeyPreview属性,注意:如果设计的是一个空白的窗体,窗体能正常响应键盘事件,而不需要任何额外的设置。但是如果窗体中放置了控件(尝试放一个TextBox控件),则程序运行后,输入焦点会位于控件上,焦点控件对于键盘事件有优先响应的权利,窗体就无法接受到键盘事件了。这时只需要简单地将窗体的KeyPreview属性设置为True,那么在控件的键盘事件发生之前会激活窗体的键盘事件。,Resize事件,当窗口第一次显示或窗口大小改变时该事件发

11、生。例如当窗口调整大小时,可用Resize事件过程来移动窗口中的控件位置或调整其大小,使界面保持美观。【例】设计包含一个TextBox控件的窗体,要求该控件总是充满整个窗口。(其中可以用到窗体的ScaleWidth和ScaleHeigth属性,他们代表窗口内部绘图区域的宽度和高度。)代码如下:Private Sub Form_Resize()Text1.Move 0,0,Me.ScaleWidth,Me.ScaleHeightEnd Sub,设计多个窗体的应用程序,执行菜单命令“工程|添加窗体”可以让一个应用程序包含多个不同界面的窗体。当需要显示某个窗体时,使用该窗体的Show方法,如Form

12、2.Show;需要关闭某个窗体时,使用Unload命令,如Unload Form2。,设置启动窗体,多个窗体的应用程序必须指定一个启动窗体有启动窗体默认情况下是第一个创建的窗体,否则:在“工程”菜单中,选“工程属性”选“通用”选项卡在“启动”列表框中,选中所要窗体,*如果需要程序启动时的快速显示窗体*可以使用“Splash屏幕”模板创建一个启动屏幕窗体,不使用启动窗体在标准模块(.bas)中定义主过程Main(类似C的main)Sub Main().End Sub在“启动”列表框中,选中“Sub Main”,结束应用程序,以下三种方法可以结束程序:End语句,使应用程序立即结束,所有对象都释放

13、,不触发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

14、(13)&“千里共婵娟”“但愿人长久”&vbCrlf&“千里共婵娟”提示:函数chr(65)将Ascii码转换为字符,Asc(“A”)将字符转换为Ascii码,buttons 指定显示按钮的数目和形式,图标样式,默认按钮等,有以下四组取值:vbOKOnly,vbOKCancel,vbYesNo,vbRetryCancel.按钮样式vbCritical,vbQuestion,vbInformation.图标样式vbDefaultButton1,vbDefaultButton2.默认按钮vbApplicationModal,vbSystemModal 强制返回性Buttons的取值是由每组类型的参

15、数中取一个值,然后相加,消息框之命令按钮,title:可选,对话框的标题,如省略标题则为应用程序名返回值vbOK,vbCancel,vbAbort,vbRetry,vbIgnore,vbYes,vbNo,消息框之标题和返回值,BackString=InputBox(prompt,title,default,xpos,ypos,helpfile,context)BackString 对话框中的返回值prompt 对话框中显示的提示信息,必选项title 可选,对话框的标题,缺省标题为应用程序名default 可选,输入文本框中的缺省值xpos,ypos 对话框与屏幕左边和上边的距离如:Dim s

16、trName As StringstrName=InputBox(“请输入用户名:”,“用户登录”,“manager”,800,800),输入对话框,【例】输入任意一个数字,输出其二次方结果。Private Sub Form_Click()Dim num As Integer num=InputBox(“请输入数字)Print num*numEnd Sub提示:虽然Print方法是窗体的方法,但在当前窗体下,可以省略窗体名。此外使用Cls方法可以清除窗体,窗体的Print方法,书写代码的规则,1不区分大小写在VB中所有的关键字、常量名、变量名以及对象属性等在书写时不区分英文大小写。但字符串的值,值A和值a是两个不同的值。2使用注释注释语句以单引号 开始,可以单独书写一行,也可以与程序语句在同一行。3将长语句分行书写续行符 _ 可将长语句分成多行书写。注意续行符不能将一个完整的单词或一对双引号括起的字符串分为两行。在同一行内,续行符后面不能加注释。4缩进式书写VB提供了自动缩进的功能。此外可以使用“编辑”工具栏进行整段代码左移、右移或进行注释等,使用编辑工具栏,“编辑”工具栏通过【视图】【工具栏】菜单来选择。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号