




已阅读5页,还剩236页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Visual Basic 程序设计,主讲:徐竞跃 E-mail:271375307,第3章 窗体与常用控件,【内容提要】,3.1 通用属性 3.2 窗体 3.3 基本控件,【重点与难点】,掌握VB标准控件的通用属性; 掌握VB窗体的属性、事件、方法; 掌握基本控件的属性、事件、方法; 深刻理解控件对象的属性、事件、方法的相互关系及使用。,控件对象,控件组成VB应用程序界面的主要部件,VB6.0提供了大量的控件。 控件的操作主要包括: 控件对象的建立 控件的属性设置 控件事件过程代码编制,控件对象,控件组成VB应用程序界面的主要部件,VB6.0提供了大量的控件,控件通常分为3种类型。 1、标准控件 标准控件也称为内部控件。VB启动后,标准控件就以图标的形式出现在工具箱中,既不能添加,也不能删除。 2、ActiveX控件 这类控件不在工具箱中,而是以“.OCX”文件类型形式存在。 需要时,ActiveX控件可以添加到工具箱中,也可以从工具箱中移除。 3、可插入对象 设计者可将Word文档、Excel工作表、PPt幻灯片等作为一个控件类并以图标形式添加到工具箱中。,控件对象,在VB6.0中将ActiveX控件与可插入对象添加到工具箱的操作。,控件对象,工具箱中每种工具都用一个图形按钮来表示,除了第一个指针工具,其余都是控件类。,控件对象,控件对象,【对象的学习要点】 对象的功能; 对象的默认对象名; 对象的常用属性; 对象的默认属性; 对象的常用事件; 对象的常用方法。,控件对象的命名,每个控件对象都有“Name属性”,其属性值就是控件对象的唯一标识名称,VB系统为每个控件都指定了一个默认的名字。 【例如】利用CommandButton工在窗体上创建的第一个命令按钮,默认名为Commandl,第二个命令按钮默认名为Command2。 在简单程序中,常常使用对象的默认名字,但实际使用中,为了提高程序的可读性与可维护性,给控件起一个具有代表的名字是非常必要的。,控件对象的命名,【微软公司建议控件的命名规则】 前缀+标识 其中:“前缀”由微软公司建议,选择控件类中的三个字母组成;“标识”是该控件代表的含义,由用户自行命名。 【例如】 CmdEnd可表示一个用于结束程序的命令按钮。,控件对象的命名,控件对象的命名,控件对象的命名,【说明】 在程序代码中使用的控件名必须与该控件Name属性值一致。若修改了某个控件的名字,序代码中只要涉及该控件的名字,都必须用修改的名字,否则会出现“缺少对象”错误。 “前缀”由微软公司建议,可以不选用。 最好在设计的界面同时修改控件名,VB系统会自动将事件过程中该控件的默认名换修改后的名字。 若在一个控件的事件过程编写完后再修该控件的名字,只能由程序员自己动手修改。,3.1 通用属性,在VB中,每一个窗体或控件都有描述其各自特征的属性,不同的控件属性不完全相同。 许多控件都有很多相同的属性,这部分属性称为“通用属性”。,1、Name名称属性,【属性功能】在程序代码中用于标识对象,所有对象都有该属性。 【属性值修改】只能在属性窗口中修改,而在程序运行时是只读,称为只读属性。 【属性值范围】中文词汇、英文词汇、阿拉伯数字和下划线_。 【默认属性值】默认的对象名:类名+序号。 【例如】 Forml、Labell、Label2等。,Name属性,【注意】Name属性在外观界面上不显示出来,在应用程序代码中起个标志识别不同对象的作用。 在同一窗体中,所有控件的Name属性是唯一的,不能同名; 在同一工程中,窗体也不能同名。 【问3-1-1】在不同窗体上,同类控件的Name属性是否能相同?在同一窗体上,控件与窗体的Name属性是否相同? 【答3-1-1】可以相同,可以相同。,2、Caption标题属性,【属性功能】在对象的外观表面或标题栏上显示的文本,在外观界面上往往起提示和标志的作用。 【属性值修改】在属性窗口和程序代码中下均可修改。 【属性值范围】多数文本。 【默认属性值】与Name的默认属性值相同。,Caption属性,【热键快捷方式的设置】 Command Button(命令按钮) Label(标签) Frame(框架) Option Button(单选钮) CheckBox(复选框) 的Caption属性中,属性值最后添加“字母”即可将该字母设置为对象的热键快捷方式,该字母将加下划线显示。,Caption属性,【例如】 Command Button(Name属性为Commandl)的Caption属性设置为“帮助&Help”,则其显示结果如图所示。 也可以用程序代码设置,语句为: Command1.Caption=”帮助&Help”,Caption属性,【问3-1-2】Caption属性和Name属性的区别。 【答3-1-2】Caption属性的值显示在对的表面或标题栏中;而Name属性是用于每个对象的标志识别,在程序代码中标识对象。,3、Enabled有效性属性,【属性功能】决定对象是否响应程序用户或操作系统生成的事件,决定对象的有效性,在程序运行时才能看到效果。 【属性值修改】在属性窗口和程序代码中均可修改。 【属性值范围】为True时,表示对象可以响应事件;为False时,表示禁止响应事件,程序运行时控件对象呈暗淡色。 【默认属性值】True,Enabled有效性,【例如】如果用代码实现,则用以下语句: Commandl.Enabled=True 将名为Commandl的控件设置为有效 Command2.Enabled=False 将名为Command2的控件设置为无效,4、Visible可见性属性,【属性功能】设置窗体或控件对象运行时是否可见。在程序运行时才能看到效果。 【属性值修改】在属性窗口和程序代码中均可修改。 【属性值范围】为True,窗体或控件可见;为False,窗体或控件不显示,此时对象也不能响应事件。 【默认属性值】True 【例如】如果用代码实现,则用以下语句: Commandl.Visible=True 将名为Commandl的控件设置为可见 Command2.Visible=False 将名为Command2的控件设置为不可见,5、Height、Width、Top 和Left属性,【属性功能】Top属性决定对象的顶部距其直接容器顶部的距离;Left属性决定对象的左边框距其直接容器的距离;Height、Width属性分别决定对象的高度和宽度。 【属性值修改】在属性窗口和程序代码中均可修改。 【属性值范围】整数数值,单位为twip,ltwip=1/20点=1/1440英寸=1/567厘米。 【默认属性值】对象不同默认值也不一同。,平面坐标系,【容器对象的平面坐标系】在容器上VB自动提供了“默认坐标系统”(其他坐标系统的设置见第9章),容器的左上角为坐标原点(0,0)向右为相对于坐标原点的X坐标,向下相对于坐标原点的Y坐标。,6、Font字体属性,【属性功能】设置窗体或控件上显示文本的“字体”、“字形”和“大小”等。 【属性值修改】在属性窗口中,选中Font属性的属性值出现字体对话框,然后进行设置。,Font属性,在代码窗口中,通过以下方式进行: FontName=“字体名” 设置字体名称 FontSize=整数值 设置字体的大小 FontBold=True/False 设置为粗体或常规 FontItalic=True/False 设置为斜体或常规 FontUnderLine=True/False 设置为下划线或取消下划线 FontStrikethru=True/False 设置为加删除线或取消删除线,Font属性,【例3.1.1】Font属性的设置举例。在窗体上建立一个标签控件Label1,单击窗体,运行结果如图。 (1)分析: (2)程序代码:,Font属性,Private Sub Form_Click() 使Label1显示为“Visual Basic6.0程序设计” Label1.Caption = “Visual Basic6.0程序设计“ Label1.FontName = “隶书“ 设置Label1的字体为“隶书” Label1.FontSize = 20 设置Label1的字体大小为20 Label1.FontBold = True 设置Label1的字体为粗体 Label1.FontItalic = True 设置Label1的字体为斜体 Label1.FontUnderline = True 设置Labe1l的字体加下划线 End Sub,Font属性,【说明】 对于不同的对象可以分别设置不同的Font属性。 如果窗体中的所有控件设置相同的Font属性,可以在设计状态下,先将窗体的Font属性设置为所要求的,然后再以这种方式添加的控件,其Font属性与窗体所设置的Font属性相同。 【问3-1-2】属性Font的属性值范围和默认属性值是什么?(学生自己摸索),7、ForeColor、BackColor属性,【属性功能】ForeColor和BackColor分别设置对象“前景色”和“背景色”的“颜色值”。 【属性值修改】 在属性窗口中修改,使用“调色板”和“系统”设置颜色。 在代码窗口中修改: ForeColor = 颜色值 BackColor = 颜色值,ForeColor、BackColor属性,【属性值范围】颜色值的设置方法有4种(详见第9章)。此处只以最常用的RGB(r,g,b)函数来进行设置,参数r、g、b分别代表红、绿、蓝三种颜色分量,取值范围为0到255。 【例如】 Form1.BackColorr=RGB(200,0,0) 将Forml的背景色设置为红色 【默认属性值】BackColor为“按钮表面”,ForeColor为“按钮文本”。,3.2 窗体,【问3-2-1】什么是窗体? 【答3-2-1】作为程序界面的设计平台,是VB中最基础的对象,是一种控件的容器,组成程序界面的控件都可放在的窗体上。 【问3-2-2】什么是窗体文件? 【答3-2-2】窗体本身、窗体上的控件、窗体包含的程序代码一起被存入窗体文件。一个窗体对应工程管理器一个组成模块,窗体文件的默认后缀为“.frm”。 在新建工程后VB6.0 IDE会自动产生第一个窗体(默认的窗体名称为Forml),并以此作为创建应用程序的起点。,3.2.1 窗体的常用属性,1、MinButton、MaxButton属性 【属性功能】MinButton和MaxButton分别决定窗体是否具有“最小化按钮”或“最大化按钮”。只能在程序运行时看到效果。 【属性值修改】只能在属性窗口中修改。 【属性值范围】为True时,窗体显示最小化按钮或最大化按钮;为False时,最小化按钮或最大化按钮显示为灰色,表示操作无效。 【默认属性值】True,MinButton、MaxButton属性,【例如】如果想让最大化按钮显示为灰色,可用以下代码实现:Forml.MaxButton= False 【说明】如果将MinButton和MaxButton均设置为False,则最小化按钮和最大化按钮均不会显示,只显示关闭按钮。,2、ControlBox属性,【属性功能】确定窗体上是否显示“三个控制按钮”(最大化、最小化、关闭按钮)和“控制菜单”。 【属性值修改】只能在属性窗口中修改。 【属性值范围】为True时,显示三个控制按钮和控制菜单;为False时,不显示三个控制按钮和控制菜单。 【默认属性值】True 【注意】ControlBox是三个控制按钮的总控制属性,而MinButton和MaxButton是两个调节属性。,3、BorderStyle属性,【属性功能】确定窗体或控件的边框类型。 【属性值修改】只能在属性窗口中修改。 【属性值范围】0None,无边框; 1Fixed Single,有固定单边框,程序运行时窗体大小不能改变; 2Sizeble,有可调整的边框; 3Fixed Dialog,固定对话框,程序运行时窗口大小不能改变; 4Fixed ToolWindow,固定工具窗口,大小不能改变; 5Sizable ToolWindow,可变大小工具窗口。 【默认属性值】为2,4、Picture属性,【属性功能】设置控件背景中显示的图形。 【属性值修改】在属性窗口和程序代码中均可修改。 直接在属性窗口中,选择Picture属性,通过选择文件或“粘贴”剪贴板中的图形,进行修改。,Picture属性,在程序代码中用函数LoadPicture将图像调入窗体作为背景。 【语法格式】 Picture = LoadPicture(”图像文件的完整路径名和文件名”) 如果对象为当前窗体,则可省略为: Picture = LoadPicture (“图像文件的完整路径名和文件名”) 【属性值范围】支持.BMP、.JPG、.GIF等多种格式的图形文件。 【默认属性值】默认值为空,表示控件对象中无图形。,5、WindowState属性,【属性功能】窗体开始运行时的初始显示状态。 【属性值修改】在属性窗口和程序代码中均可修改。 【属性值范围】为0时,表示窗体为正常状态显示;为1时,表示窗体以最小化方式显示;为2时,表示以最大化方式显示。 【默认属性值】为0。,6、AutoRedraw属性,【属性功能】自动重绘,控制对象上显示内容的重新绘制。 【属性值修改】在属性窗口和程序代码中均可修改。 【属性值范围】为True时,表示窗体可以自动重绘;为False时,表示窗体不能自动重绘。 【默认属性值】False,7、Icon属性,【属性功能】用来设置窗体最小化时的图标。 【属性值修改】在属性窗口和程序代码中均可修改,修改方法同Picture属性相同。 【属性值范围】支持的“.ICO”格式的图标文件。 【默认属性值】为空,表示窗体中无最小化图标。,3.2.2 常用窗体事件,1、Click事件单击窗体或控件,触发Click单击事件。 2、DblClick事件双击窗体或控件,触发DblClick双击事件。 【注意】 “双击鼠标操作”实际上连续触发两个事件:第一次点击时产生Click事件,第二次点击时产生DblClick事件。 Click和DblClick事件并不区分鼠标左右中按键。,常用窗体事件,3、Load装载事件 应用程序运行启动窗体时,将窗体读入内存(加载窗体),自动触发Load事件,此时窗体为不活动窗体。Load事件一般用于在运行程序时对属性和变量进行初始化。 4、Unload卸载事件关闭窗口时才触发。把窗体从内存中删除(即卸载窗体)。 【例3.2.1】改变窗体属性举例。程序运行开始时,窗体中有一背景图,每单击窗体一次,窗体便缩小为当前窗体的1/3。,常用窗体事件,(1)设置窗体背景图像可选择前面介绍的两种方法中的任意一种,而本例选用的是第2种方法,所以程序代码为:,Private Sub Form_Load( ) Form1.Picture=LoadPicture(“d:aaa.jpg”) End Sub,常用窗体事件,(2)缩小窗体 单击窗体,故选择Form_Click()事件。 窗体缩小1/3,本质上就是每次使窗体的Width和Height属性的值减少1/3,即为当前窗体的Width和Height属性值的2/3,程序代码如下:,Private Sub Form_Click( ) Form1.width=Form1.Width*2/3 Form1.Height=Form1.Height*2/3 End Sub,常用窗体事件,5、Activate活动事件发生在Load事件之后,当窗体变为活动窗体时,自动触发Activate活动事件,此后才能响应用户在界面上的交互操作。 6、Deactivate非活动事件发生在Upload事件之前,当窗体变为不活动窗体时,自动触发Deactivated非活动事件。 7、Resize大小事件如果窗体大小发生了改变的操作,自动触发Resize事件。 【注意】程序运行时,改变窗体大小的方法有两个,第一种通过程序代码修改窗体的Height和Width属性,第二种是程序用户使用鼠标拖动窗体边缘。,常用窗体事件,【例3.2.2】窗体事件的触发举例。程序代码如下,当运行程序,单击窗体,双击窗体后的结果如图所示。,Private Sub Form_Activate( ) Print “触发Form_Activate事件” 显示提示信息”触发Form_Activate事件” End Sub,Private Sub Form_Click( ) Print “触发Form_Click事件” 显示提示信息”触发Form_Click事件” End Sub,常用窗体事件,Private Sub Form_Dblclick() Print “触发Form_Dblclick事件” 显示提示信息”触发Form_DblClick事件” End Sub,Private Sub Form_Load() Form1.Show Print “触发Form_Load 事件” 显示提示信息”触发Form_ Load事件” End Sub,常用窗体事件,【注意】Load事件和Activate事件由VB系统自动触发;而Click事件和DblClick事件,由用户触发。,3.2.3 鼠标事件,程序用户的鼠标操作所触发的能被各种对象识别的事件,称为鼠标事件。 重要的鼠标事件除了Click和DblClick以外,当鼠标指针停留在窗体或控件上时还可以触发如下事件: MouseDown:当按下任意一个鼠标按键时被触发; MouseUp:当释放任意一个鼠标按键时被触发; MouseMove:当鼠标指针移动时被触发。,1、鼠标事件过程,Private Sub 对象名_MouseMove( Button As Integer, Shift As Integer, X As Single, Y As single) End Sub,Private Sub 对象名_MouseUp( Button As Integer, Shift As Integer, X As Single, Y As single) End Sub,Private Sub 对象名_MouseDown( Button As Integer, Shift As Integer, X As Single, Y As single) End Sub,2、事件过程参数,鼠标的MouseDown,MouseUp和MouseMove三种事件过程触发时,由操作系统向应用程序给出这4个参数的参数值。 当进入相应的事件过程时,可根据这4个参数的参数值判断鼠标操作的按键状态。 (1)Button参数 【参数功能】在按下或释放鼠标按键时,给出哪个按键的被操作。,Button参数,用Button参数的低三位bit分别表示鼠标的三个按键的状态,bit 0对应左按键,bit l对应右按键,bit 2对应中间按键。当某一按键被操作,相应的位被置1,否则为0。,Button参数,【参数值】可用十进制的1、2、4或三个VB常量的VbLeftButton、VbRightButton、VbMiddleButton表示鼠标左、右、中按键的触发状态。 【注意】 如果鼠标只有一个按钮,则只有左按钮;若有两按钮,则只有左、右按钮。 MouseDown和MouseUp这两个鼠标事件不能检测出两个按钮同时按下的情况。,Shift参数,(2)Shift参数 【参数功能】在按下或释放鼠标按键的同时,给出同一时间键盘的Shift、Ctrl和Alt键的状态。 用Shift参数的低三位bit分别表示键盘的Shift、Ctrl和Alt这三个按键的状态,bit 0对应Shift键,bit 1对应Ctrl键,bit 2对应Alt键。,Shift参数,【参数值】可用十进制的17或七个VB常量表示键盘Shift、Ctrl和Alt键的触发状态。,X和Y参数,(3)X,Y参数 给出鼠标指针在窗体或控件中的当前位置。通过X和Y参数返回一个指定鼠标指针当前位置的数,以使用该对象的坐标系统的刻度为单位。 【注意】同一位置X、Y参数值根据窗体坐标系统和控件坐标系统的变化而不同。,【例3.2.3】鼠标事件举例,在窗体上,按下鼠标键,窗体的背景色变为绿色,并显示“按下鼠标键,触发MouseDown事件”;松开鼠标键,窗体的背景色变为红色,并显示“松开鼠标键,触发MouseUp事件”。 (1)选择事件过程。由于是在窗体上按下鼠标键,就改变背景色显示信息,所以选择操作对象为窗体,选择的操作为MouseDown。由此,选择Form_MouseDown事件过程。同理,由于是在窗体上松开鼠标键,就改变背景色显示信息,所以选择的操作对象为窗体,选择的操作为MouseUp。由此选择Form_MouseUp事件过程。 (2)程序代码:,鼠标事件举例,Private Sub Form_MouseDown( Button As Integer, Shift As Integer, X As single, Y As single) BackColor = RGB(0,220,0) 设置背景色为绿色 Print “按下鼠标键,触发MouseDown事件” 显示提示信息 End Sub,Private Sub Form_MouseUp( Button As Integer, Shift As Integer, X As single, Y As single) BackColor = RGB(220,0,0) 设置背景色为红色 Print “松开鼠标键,触发MouseUp事件” 显示提示信息 End Sub,鼠标事件举例,【说明】 上例中,只要按下鼠标键(无论是左键还是右键),均会改变窗体的背景和显示信息。 如果将上例的要求变为:在窗体上,按下鼠标左键,窗体的背景色变为绿色,并显示“按下鼠标左键,触发MouseDown事件”; 松开鼠标左键,窗体的背景色变为红色,并显示“松开鼠标左键,触发MouseUp事件”。,鼠标事件举例,Private Sub Form_MouseDown( Button As Integer, Shift As Integer, X As single, Y As single) If Button=1 Then 用Button参数来判断是否按下鼠标的左键 BackColor=RGB(0,220,0) 设置背景色为绿色 Print “按下鼠标键,触发MouseDown事件” 显示提示信息 End If End Sub,鼠标事件举例,Private Sub Form_MouseUp( Button As Integer, Shift As Integer, X As single, Y As single) If Button=1 Then 用Button参数来判断是否松开鼠标的左键 BackColor = RGB(220,0,0) 设置背景色为红色 Print “松开鼠标键,触发MouseUp事件” 显示提示信息 End If End Sub,鼠标事件,【思考3-2-1】当窗体上的控件Visible属性为False时,单击控件原位置时窗体响应Click事件还是控件响应Click事件。 【答3-2-1】响应窗体Click事件。 【思考题3-2-2】当鼠标单击或双击时,MouseDown、MouseUp、Click、DblClick事件触发的顺序? 【答3-2-2】鼠标单击时,依次触发MouseDown、MouseUp、Click事件;鼠标双击时,依次触发MouseDown、MouseUp、Click、DblClick、MouseUP事件。,3、对象鼠标光标的形状,鼠标光标的形状通过当前鼠标所在位置处的对象的MousePointer属性来设置。 支持MousePointer属性的对象:复选框、组合框、命令按钮、目录列表框、驱动器列表框、文件列表框、窗体、框架、图像、标签、列表框、滚动条、文本框、屏幕等。,鼠标光标的形状,【注意】 当鼠标光标移动到该对象上时,将以MousePointer属性中设置相应的形状显示; MousePointer属性值若为99,则使用自定义图标作为鼠标形状显示。 【MouseIcon属性】设置自定义的鼠标图标,图标文件的类型为.ico或.cur。 【注意】 该属性必须在MousePointer属性为99时有效; 在VB6.0的安装路径下的Graphics目录下有一个图标库。,3.2.4 键盘事件,当选中窗体或控件(即具有焦点)后,键盘操作触发的事件有: KeyDown:程序用户按下任意一个键盘按键时被触发; KeyUp:程序用户释放任意一个键盘按键时被触发; KeyPress:程序用户按下并释放任意一个ASCII码键盘按键后被触发。,1、KeyDown和KeyUp事件过程,【事件过程语法格式】,Private Sub 对象名_KeyUp (KeyCode As Integer, Shift As Integer) End Sub,Private Sub 对象名_KeyDown (KeyCode As Integer, Shift As Integer) End Sub,KeyDown和KeyUp,【参数说明】 KeyDown和KeyUp事件过程均给出了所操作的键盘按键键号KeyCode;如未按键,返回的键号值为0。 键号KeyCode是键盘上每个按键的物理位置编号,不区分上、下档键,即输入“A”与“a”时的键号值相同。 【例如】 A键的键号值均为65,B键的键号值均为66,以此类推,Z键的键号值均为90;0键的键号值均为48,1键的键号值均为49,以此类推,9键的键号值均为57。,KeyDown和KeyUp, 键号KeyCode可用VB常量表示:vbKey+按键上的字符。例如,vbKeyShift,vbKeyA,vbKeyFl等。 Shift参数与鼠标事件中Shift参数的一致。,2、KeyPress事件,【事件过程语法格式】 【参数说明】 参数KeyAscii返回按键的ASCII码。可用Chr()函数将KeyAscii参数转化为字符: Chr(KeyAscii) 回车Enter键的ASCII码为13,也等同于VB常量vbCrLf。,Private Sub 对象名_KeyPress(KeyAscii As Integer) End Sub,KeyPress事件, 操作的按键是具有ASCII码的标准ANSI字符编码时,才触发KeyPress事件。 KeyPress事件只识别ASCII码键和Enter、Tab、Backspace键。其他功能键、编辑键,及特殊的组合键时不被触发。 【问3-2-3】:操作一个ASCII码按键时,Keypress、KeyDown、KeyUp事件如何触发? 【答3-2-3】:先触发KeyDown,再触发KeyPress,最后触发KeyUp。,【例3.2.4】KeyPress事件举例。,运行程序时,按下某个字符键,在窗体上显示KeyAscii值和对应的按下的键名。 (1)分析选择Form_Activate事件,用Print方法显示表头。 KeyAscii参数返回按键的ASCII码,所以用Chr()函数将按键的ASCII码转换成对应键的字符表式。 (2)程序代码:,KeyPress事件举例,Private Sub Form_Activate() Print “KeyAscii值”,“按下的键名” 显示表头 End Sub,Private Sub Form_KeyPress( KeyAscii As Integer) Print KeyAscii,Chr(KeyAscii) 显示键名和KeyAscii的值 End Sub,3、KeyPreview属性,【属性功能】窗体上有焦点控件时,是否允许窗体预先响应键盘事件,然后控件再响应该键盘事件。该属性让一个键盘事件触发两个键盘事件过程。 【属性值修改】在属性窗口和程序代码中均可修改。 【属性值范围】为True时,允许窗体优先响应键盘事件,然后再触发控件键盘事件并把KeyAscii或KeyCode参数传递给控件事件过程;为False时,不允许窗体优先响应键盘事件。 【默认属性值】False,KeyPreview属性,【属性与键盘事件的关系】 在KeyPreview属性值为False时,当程序用户对当前具有控件焦点的控件进行键盘操作时,控件的三种键盘事件被触发,但窗体的三种键盘事件不会被触发。 而当为True时,应用程序会优先让窗体的三种键盘事件响应程序用户的键盘操作,并允许在窗体的键盘事件过程中对KeyAscii或KeyCode参数进行处理,紧接着再让具有焦点的控件响应这个键盘操作并接收处理后的KeyAscii或KeyCode参数。,KeyPreview属性,KeyPreview属性,【注意】:如果窗体的KeyPress事件过程中将KeyAscii参数修改为0,则不会再去响应焦点控件的KeyPress事件过程。 【例如】假定KeyPreview属性为True,并有下列两个事件过程:,Private Sub Form_KeyPress(KeyAscii As Integer) KeyAscii=KeyAscii+1 End Sub,KeyPreview属性,当用户在键盘上输入小写字符“a”时,文本框Text1接收到字符“c”。如果KeyPreview属性为False,则只执行文本框的KeyPress事件过程,文本框接收到字符“b”。 利用这个特性可以对输入的数据进行验证、限制和修改。,Private Sub Text1_KeyPress( KeyAscii As Integer) KeyAscii=KeyAscii+1 End Sub,KeyPreview属性,【例如】如果在窗体的如下KeyPress事件过程中将所有的字符都改成大写,则窗体上的所有控件接收到的都是大写字符。 【注意】学习对象事件过程,要了解和体会事件什么时候被触发,相关事件的触发次序如何。,Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = Asc(“a”) And KeyAscii = Asc(“z”) Then KeyAscii = KeyAscii+Asc(“A”)-Asc(“a”) End If End Sub,3.2.6 常用窗体方法,1、Print输出方法 【Print方法语法格式】 Print 【表达式列表】 【功能】将列表中每一个表达式结果按设定格式输出到对象上。 【适用对象】Form窗体、PictureBox控件、Printer和Debug。,Print方法,【表达式列表】由一个或多个表达式组成,表达式之间用“ ; ”(分号)或“ , ”(逗号)隔开。 【输出格式设定】对于同一对象上的输出格式设定如下: 如果列表的各个表达式之间用逗号分隔时,每个表达式结果的输出占14个字符位置,称为分区格式(标准格式,即表达式结果对齐输出); 如果用分号分隔时,每个表达式结果的输出之间无空格,称为紧凑格式,即表达式结果不对齐输出。 如果表达式结果是数值,在尾部自动加一个空格输出,头部自动加一个符号位(正数为空格)输出。,Print方法, 如果列表的最后一个表达式后面有分号,则下一个Print方法的输出不换行,并按紧凑格式输出; 如果列表的最后一个表达式后面有逗号,则下一个Print方法的输出不换行,并按分区格式输出。 如果列表的最后一个表达式后面没有任何符号,则下一个Print方法换行输出; 如果Print后面没有任何的表达式和符号,则下一个Print方法换行输出。,Print方法, Tab(n)指定该函数后面的表达式结果从本行的第n个字符位置开始输出,可以实现定位输出。 如果第n个字符位置已有字符存在,则自动换行在下一行的第n个字符位置开始输出。 Spc(n)该函数用来输出n个空格。 Format (表达式【,格式字符串】)使表达式的结果按“格式字符串”指定的格式输出。,Print方法,【例3.2.5】Print方法举例,Private Sub Form_Click() Print 1;-2,”A”;”B” 显示第一行,”BB“后无任何符号,光标移到下一行 Print “CCC”; Print “DDD”, ”CCC”后为分号,”DDD”按紧凑格式输出 Print “EEEE”,”FFFFF” “DDD”后为逗号,”EEE”按分区格式输出 Print Print后无输出项,光标移到下一行,从而产生一个空行 Print “GGGG”; Print ”GGGG”后为分号,本行的Print语句应按紧凑格式输出, 但由于本行的Print方法后无输出项,所以光标移到”GGGG”的下一行,Print方法举例,Print ”HHH” Print Tab(4);”微软” 从第4个位置开始显示“微软” Print Spc(6);”程序设计” 空6个空格,从第7个位置开始显示“程序设计”, 一个汉字占2个字符的位置 Print Format(20.3456,”+#.#”) 显示”+”号,少于#的个数,显示不变,多于#的个数,做四合五入 Print Format(20.3456,”000.00”) 少于0的个数,用0补充,多于0的个数四舍五入 Print Format(Now,”yyyy/mm/dd hh:mm:ss”) End Sub,Print方法举例,Private Sub Form_Load() Form1.Show Form1.AutoRedraw = True Print “123456789012345678901234567890“ End Sub,Print方法,【问3-2-6-1】为什么在“FFFFF”与“GGGG”之间有一个空行?为什么在“GGGG”与“HHH”之间无空行?为什么“程序设计“的显示在“软”字一半的位置?(学生自己摸索答案) 【注意】 Print方法的当前输出位置是由对象的当前坐标属性CurrentX和CurrentY决定的,起始输出位置默为对象的左上角(0,0); Print方法在Form_Load事件过程中无效,因为窗体的AutoRedraw属性默认为False,若在Print方法之前将AutoRedraw属性设置为True,则变成有效。,2、Cls方法,【Cls方法语法格式】 Cls 【功能】清除对象上用Print方法输出的文本和用绘图方法(在第9章介绍)绘制的图形,同时将当前输出位置坐标移到原点(0,0)位置。 【适用对象】Form窗体和Picturebox图片框。,Cls方法,【说明】 不能清除对象的Picture属性中的图像。 Cls方法使用后,对象的当前坐标属性CurrentX和CurrentY均变为0。 清除Picture属性中的图像可用以下语句之一来实现: Picture = LoadPicture(“ ”) Picture = LoadPicture() Picture = LoadPicture Picture = Nothing,3、Move方法,【 Move方法语法格式】 Move Left, Top, Width, Height 【功能】移动窗体或控件。 【适用对象】窗体及除计时器Timer和菜单Menu以外的所有控件。 【参数】Left和Top参数来指定移动目的位置的坐标,同时也可用Width和Height参数修改对象大小。 四个参数中,Left为必要参数,不能少;Top、Width、Height为可选参数,若缺省,系统采用默认值。,【例3.2.6】Move方法示例,在屏幕上移动窗体,程序运行时,每单击窗体一次,窗体向下移动200Twip。 (1)移动窗体由于只向下移动,因此只需修改Top参数的值,Forml.Top+200代表向下移动,如果是向上移动,则用Forml.Top200。 (2)选择事件驱动过程单击窗体后,窗体才移动,故对象应选择Form,事件应选择Click(),所以事件驱动过程就应选择Form_Click()。 (3)界面设计窗体如果处于最大化,则窗体就无法在屏幕上移动,所以将Forml的MaxButton属性设置为False。 (4)程序代码,Move方法示例,【注意】 如果要改变某一参数,该参数之前的参数不能省略,其后参数则可省略。 窗体移动时的坐标原点是屏幕的左上角。 属性ScaleWidth、ScaleHeight是窗体的相对宽度和高度,即扣除窗体的边框和标题栏的长度。 窗体如果处于最大化,则窗体就无法在屏幕上移动。,Private Sub Form_Click() 单击窗体后,窗体才移动,故选择Form_Click() Form1.Move Form1.Left, Form1.Top +200 或者 Form1.Top=Form1.Top +200 End Sub,3.3 基本控件,【控件】是在图形用户界面上输入信息、输出信息、启动事件过程等交互操作的图形对象。 【 VB6.0控件分为三类】 固有控件也称为标准控件,在工具箱中显示且不可删除; 扩展控件(ActiveX)保存在.OCX类型的文件中,使用时先将其放入工具箱,然后和固有控件一样使用; 可插入对象控件指可插入其他程序文件等对象。,容器,【容器】是可以容纳其他控件对象的一种对象。 容器和容器内的控件组合成一个整体,随容器一起被操作。 在标准控件中具有容器功能只有三种对象: 窗体(Form) 图片框(PictureBox) 框架(Frame),3.3.1 标签控件,【Label功能】显示文字说明信息或程序运行的结果等。 【默认控件名】LabelN,(N=1、2、3) 【控件值】Caption,其默认值和Name属性默认值相同。,1、标签的属性,(1)Alignment属性 【功能】确定Caption属性中文本的显示对齐方式。 【属性值范围】 为0表示左对齐(默认值) ; 为l表示右对齐: 为2表示居中对齐。,标签的属性,(2)BackStyle属性 【功能】设置标签背景和图形是否透明。 【属性值范围】 为0表示透明,标签后可见; 为1表示不透明,标签后不可见(默认值) 。,标签的属性,(3)BorderStyle属性 【功能】设置有无边框。 【属性值】 为0表示无边框(默认值); 为1表示有单边框。,标签的属性,(4)Autosize属性 【功能】是否随Caption的内容自动改变大小,以显示全部内容。 【属性值】为True表示自动调节且不换行; 为False表示不自动调节(默认值),超出范围的内容不予显示。,标签的属性,(5)Wordwrap属性 【功能】是否自动调节垂直方向(自动换行)的高度,以正好显示全部内容。 【属性值】为True表示自动调节; 为False表示不自动调节(默认值)。 【说明】 只有当Autosize为True时Wordwrap才有效。 标签的Caption属性用来改变Label控件中显示的文本。Caption属性允许文本的长度最多为1024字节。 缺省(默认)情况下,当文本超过控件宽度时,文本会自动换行;而当文本超过控件高度时,超出部分将被裁剪掉。,标签的属性,【问3-3-1-1】在Label的Caption属性中输入文本时,一行未输入完能换行吗? 【答3-3-1-1】 在属性窗口Caption属性中直接输入时,不能,但可以在未输入完的文本行末尾“输入空格”达到换行的效果。 用程序代码修改Caption属性时,可以。语法格式 “上行字符串” & vbCrlf & “下行字符串” 其中,“&”为连接操作符;vbCrlf是Enter键的VB常量,可以用Chr(13)和Chr(10)代替。,2、标签的事件,标签可以响应许多事件,常用Click、DblClick等,用法与窗体的Click、DblClick事件类似。 3、标签的方法 标签常用Move方法,用法与Form的Move方法相同。,3.3.2 文本框控件,【 TextBox功能】在程序运行时程序用户可用鼠标、键盘在文本框中“显示”和“接收”文本信息。 【默认控件名】TextN,(N=1、2、3),1、文本框的属性,(1)Text属性控件值 【功能】存放显示和接收的文本内容。 【属性值】任何字符型文本,其默认值和Name属性默认值相同。 【注意】在文本框中显示的文本内容存放在Text属性中。当程序运行时程序用户输入的文本内容,也存放在Text属性中。,文本框的属性,(2)MultiLine属性 【功能】是否允许接收和显示多行文本。 【属性值】为True表示允许多行文本; 为False表示只允许单行文本(默认值)。,文本框的属性,(3)PassWordChar属性 【功能】设置文本字符的替代显示形式,掩盖真实字符,主要用于密码输入程序中。 【属性值】为“空”表示正常显示(默认值);为“一个字符”表示每个文本字符均以该字符代替。 【注意】将MultiLine设为False才有效。,文本框的属性,(4)MaxLength属性 【功能】可接收和显示的字符个数。 【属性值】为n表示个数小于或等于n;为0表示个数无限制(默认值)。 (5)Locked属性 【功能】是否锁定文本内容。 【属性值】为True表示不能修改文本内容;为False表示可以修改文本内容(默认值)。,文本框的属性,(6)ScrollBars属性 【功能】是否具有滚动条,只有当MultiLine为True时有效。 【属性值】为0表示无滚动条(默认值); 为l表示只有水平滚动条; 为2表示只有垂直滚动条; 为3表示有水平和垂直两种滚动条。 【注意】当加入水平滚动条后,文本框内的自动换行功能会自动关闭,只有按Enter键才能回车换行。,文本框的属性,(7)SelStart、SelLength和SelText属性 【功能】设置或返回在文本框中选定文本时的“起始位置”、“长度”和“选定内容”。 SelStart:设置或返回选定文本的起始位置。第一个字符的位置为0(默认值)。若未选择文本,用于设置或返回插入点前面的字符位置,如果SelStart的值大于整个文本的长度,则取当前文本的长度。 SelLength:设置或返回选定文本的字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 核桃考试题及答案
- 婚检考试题及答案
- 动火考试题及答案
- 植物基础知识模拟练习题含答案
- 母婴保健法培训试题【附答案】
- 危重症患者的识别界定试题(附答案)
- 护理值班交接班制度试题(附答案)
- 定点停车理论考试试题(附答案)
- 2025保险委托居间合同书-责任保险代理服务
- 2025年度国有企业临时聘用合同工劳动合同
- 《油气管道无人机智能巡检系统技术管理规范》
- 2025年新版期权知识考试题库带答案
- 2025年新《中华人民共和国安全生产法》知识竞赛测试题库含答案
- 2025年度吉林辅警招聘考试题(含答案)
- 吉安市新庐陵投资发展有限公司及下属子公司2025年第二批面向社会公开招聘笔试备考题库及答案解析
- 幼儿园卫生及安全检查标准
- 儿童动漫消费偏好-洞察及研究
- 2025年12345热线考试题库
- 网络接入管理办法
- 隧道二衬安全注意事项
- 绿色矿山培训课件
评论
0/150
提交评论