全国二级VB教程补充内容.ppt_第1页
全国二级VB教程补充内容.ppt_第2页
全国二级VB教程补充内容.ppt_第3页
全国二级VB教程补充内容.ppt_第4页
全国二级VB教程补充内容.ppt_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

1,对江苏版新编Visual Basic程序设计教程的补充,全国计算机等级考试 二级VB教程,纺织服装学院数字纺织教研室 2010.6.8,2,说明:,本教学内容是对江苏省高校新编 Visual Basic程序设计教程的补充。 文中表述时采用的白色文字,表示为已学过的知识,目的是使新讲述的知识与原有知识进行有机衔接。 文中表述时采用的黄色(含其它颜色)文字,表示为新知识。 程序代码通常使用白色。,3,一、制作工具栏,工具栏为Windows98 / 2000 / XP 应用程序常用的标准功能。它提供菜单命令的快速访问。,(一) 使用控件创建工具栏,1、首先在工具箱中添加“Toolbar控件”(工具栏控件)与“ImageList控件”(图象列表控件),方法:将鼠标移到工具箱上,单击鼠标右键,选择“部件”。在控件标签下选择“Microsoft Windows Common Controls 6.0”, 单击确定 按钮。,注意:在专业版和企业版才有此功能。,下转 创建工具栏 完成的工具栏,4,a,b,c,下转 创建工具栏 需制作的工具栏,5,2、将“Toolbar控件”与“ImageList 控件”放到窗体中,Toolbar控件,ImageList控件,Toolbar对象,ImageList 对象,6,3、将按钮图形文件加到“ImageList控件”中。 此控件主要是管理图像文件。,方法:选中ImageList控件,单击鼠标右键,选择 “属性”,出现以下窗口。选择 “图像” 标签”。,7,单击 “插入图片” 按钮,在某个文件夹下找到要使用的图片,并为每个图片指定一 个关键字。单击 “确定” 按钮。,下转 创建工具栏 需制作的工具栏,8,4、使用“Toolbar控件”建立按钮。 方法:选中“Toolbar控件”,单击鼠标右键,选择“属性”。出现如下窗口。,9,在“通用”标签下,在“图像列表”下拉列表中选择 ImageList 1 对象。,10,在 “按钮” 标签下,单击 “插入按钮”,在关键字处输入 “new”, 在工具提示文本中输入 “新建”,在图像中输入 “1”,单击 “确定” 按钮。这时在工具栏按钮上出现图像。 重复以上步骤,将能创建多个工具栏按钮。,在程序代码中出现的按钮名称。(必须要),注:必要时 可加标题,下转 创建工具栏 需制作的工具栏,11,完成的工具栏,添加了标题的工具栏,添加了工具提示文本的效果,12,5、输入各个按钮的程序代码,在设计状态,双击“Toolbar”对象,出现代码窗口。,Private Sub Toolbar1_ButtonClick (ByVal Button As MSComctlLib.Button) Select Case Button.Key Case “new“ Label1.Caption = “ 新建一个文挡!“ Case “open“ Label1.Caption = “ 打开一个文挡!” Case ”save” Label1.Caption = ” 保存一个文挡!“ Case “print“ Label1.Caption = “ 打印一个文挡!“ End Select End Sub,13,(二)补充知识: 创建多窗体界面的二 种情况: 1、在一个工程中创建 多个并列窗体。 下转VB开发环境作演示 2、在一个工程中创建 具有父子结构的MDI 多窗体界面。 下转VB开发环境作演示,并 列 窗 体,父窗体,子窗体,14,举例:创建一个MDI窗体。一个父窗体,二个 子窗体。在父窗体上制作一个菜单栏,菜单名 分别为窗体1、窗体2,并编程。 要求:当点击某菜单项时,相应的子窗体在父 窗体中显示。,15,Option Explicit Private Sub mnu1_Click() Form1.Show Form2.Hide End Sub Private Sub mnu2_Click() Form2.Show Form1.Hide End Sub,菜单项编程:,下转 MDI窗体演示,16,二、VB控制结构及其语句,(一)分支结构语句 1、单分支结构语句 If e Then 或: If e Then End If 2、双分支(标准)结构语句 If e Then Else End If,3、多分支结构语句 If e1 Then Elseif e2 Then Elseif e3 Then Else End If,17,4、并列分支结构语句(亦称情况语句) Select Case e Case c1 Case c2 Case Else End Select,5、IIf 函数 (1) IIf函数是“If-Then-Else”结构的简写版本,可用来执行简单的条件判断操作。 IIf是 “ Immediate If ”的缩略词。 (2)函数格式: result=Iif (条件,True部分,False部分) 说明:1)result指函数的返回值 2)“条件”是一个逻辑表达式,,18,当条件为真时,Iif函数返回“True部分”,而当条件为假时,返回“False部分”。 3)“True”或“False部分”可以是表达式、变量或其他函数。 4)Iif函数中的3个参数都不能省略。 举例1 : 相当于: r=Iif(a5,1,2) If a5 Then Print r r=1 Else r=2 End if Print r,下转:二VB控制结构及其语句-1,19,举例2:使用IIF函数判断D的值,试直接采用Print语句输出结果。,下转:二VB控制结构及其语句-2,Private Sub Form_Click() Dim d As Integer d = InputBox(“请输入D值“, “直接采用Print“, 0) Print IIf(d 12, “D大于12“, “D小于12“) End Sub,举例3:试求分段函数 y=,4 + 3x x=0,下转:二VB控制结构及其语句-3,Private Sub Command1_Click() Dim x As Integer, y As Integer x = InputBox(“, , 0) y = IIf(x 0, 4 + 3 * x, 10 - x) Text1.Text = y End Sub,20,(二)无条件转向语句GoTo 1、概念:Goto语句用于无条件改变程序执行的顺序。例如跳过程序的某一部分去执行另一部分,或返回已经执行过的某语句使之重复执行。 2、语句格式: GoTo 标号 | 行号 说明:1)标号 | 行号用于指明程序将转移至的目标 语句的逻辑位置。 2)标号是一个以字母开头的标识符,其后必 带冒号。例如 again: ,start: 。行号是以数字表示的。 例如:10,20,258等。在程序中标号、行号必须是 惟一的。 3)GoTo语句总是在一个过程中使用。,21,举例4:从键盘输入a,b,c三个值,判断a+b是否小于c,若 满足则结束程序。试采用GoTo语句,且仅使用行号。,下转:二VB控制结构及其语句-4,Private Sub Form_Click() Dim a As Single, b As Single, c As Single 10 a = Val(InputBox(“请输入A值“) b = Val(InputBox(“请输入B值“) c = Val(InputBox(“请输入C值“) If a + b =c,继续输入!“ GoTo 10 50 Print a; b; c; “a+bc,结束!“ End Sub,行号,22,举例5:仍为上题,试采用GoTo语句,且将行号与标 号复合使用。,下转:二VB控制结构及其语句-5,Private Sub Form_Click() Dim a As Single, b As Single, c As Single Start: a = Val(InputBox(“请输入A值“) b = Val(InputBox(“请输入B值“) c = Val(InputBox(“请输入C值“) If a + b =c,继续输入!“ GoTo Start 50 Print a; b; c; “a+bc,结束!“ End Sub,行号,标号,23,举例6:试采用GoTo语句设计一个计算 n! 阶乘。 Private Sub Command1_Click() Dim k As Integer, i As Integer, n As Integer n = Val(InputBox(“请输入 n 的值“, “求N的阶乘“, 2) k = 1: i = 1 Again: k = k * i i = i + 1 If i = n Then GoTo Again Else GoTo 500 End If 500 Print n; “! = “; k End Sub,下转:二VB控制结构及其语句-6,求n阶乘的值 求次数 判断I值,24,(三)具有并列分支结构功能的 On - GoTo语句 1)功能:实现并列分支功能,依据条件判断从多种处 理方案中选择一种。 2)格式: On 数值表达式 GoTo 行号表列 | 标号表列 3)On - GoTo 语句执行过程: 首先计算“数值表达式”的值,若为小数则自动四舍 五入求整,之后依据该值决定转移到第几行号或标号。 On k GoTo 行/标1, 行/标2, 行/标3, 行号/标号4 k=1 k=2 k=3 k=4,25,举例7:设某时期的银行存款年利率如下: 1-活期 2.5% 2-定期一年 5% 3-定期二年 7.5% 4-定期三年 9% 5-定期五年 11% 6-定期八年 13% 以上1、2 6代表存款类别,从键盘输入存款类别, 计算出一年后所得的本利之和。试应用 on-GoTo语句 编写程序。 令:存款额为 A 存款类别为 k 利率为 P 解:,26,A、用户界面:,27,Private Sub Command1_Click() Dim a As Single, k As Integer, p As Single Text1.SetFocus a = Val(Text1.Text) Text2.SetFocus k = Val(Text2.Text) If k 6 Then k = 6 On k GoTo 10, start, 30, 40, 50, 60 10 p = 0.025 GoTo 100 start: p = 0.05 :GoTo 100 30 p = 0.075 : GoTo 100 40 p = 0.09 : GoTo 100 50 p = 0.11 : GoTo 100 60 p = 0.13 : GoTo 100 100 Text3 = Str(Format(a * p, “00#,#.#“) Text4 = Str(Format(a * (1 + p), “00#,#,#.#“) End Sub,B、用户程序:,A - 存款额 K - 存款类别 P - 利率,28,Private Sub Command2_Click() Text1 = “ Text2 = “ Text3 = “ Text4 = “ Text1.SetFocus End Sub Private Sub Command3_Click() Unload Me End Sub,下转:二VB控制结构及其语句-7,注意:在实际编程时,无特别的必要,请不要使用 GoTo 语句与 On - GoTo 语句,因为在程序较长时易使程序走向紊乱,造成编程错误!仅在考试时试题要求时才应用!,29,三、键盘&鼠标事件过程,(一)键盘的KeyPress(按键)事件,在窗体上画一个文本框,然后编写如下事件过程: Private Sub Text1_KeyPress(KeyAscii As Integer) Dim char As String, x As Integer char = Chr(KeyAscii) x = Asc(UCase(char) Print String(4, x+1) End Sub 程序运行后,如果在键盘上输入字母“a”,则窗体上显示的 信息为(B) AAAAA B.BBBB C.aabb D.AABB,下转:三键盘与鼠标事件 - 1,30,讨论: 1、当设置有键盘事件时,当压下键盘上某个键,将触发 KeyPress 事件。 2、定义“按键”事件的一般格式: Private Sub Text1_KeyPress(KeyAscii As Intrger) End Sub 3、按键事件的参数:二种形式 1)KeyAsscii As Integer 用于单个控件(常 用) 2)Index As Integer 用于控件数组(非常用),31,4、KeyPress事件的作用: 按键事件用来识别所按键的 ASCII 码。操作时,当按下某键,由预定义变量(参数 KeyAsscii)给出对应的 ASCII 码的值。 例如:按下 “A”键:KeyAscii 的值为 65 按下“ a ”键: KeyAscii 的值为 97,下转:第三部分 键盘与鼠标事件 - 2,举例2:,Private Sub Form_KeyPress(KeyAscii As Integer) Print Chr(KeyAscii); KeyAscii Print End Sub,32,举例:设计一个能对输入值进行限止、分流的应用程序。其中阿拉伯数字0(ASCII码 48)- 9(ASCII码 57)在Text1中回显。除此不充许,仅在Text2中显示。,下转:第三部分 键盘与鼠标事件 - 3,Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii 57 Then MsgBox “不充许!在Text2中显示“, 16 Text2.Text = Text2 & Chr(KeyAscii) Else Text1.Text = Text1 & Chr(KeyAscii) End If KeyAscii = 0 End Sub,33,5、在默认情况下,控件的键盘事件优于窗体的键盘事件,若需要窗体先接收键盘事件,则应把窗体的KeyPreview属性设置为 True(后面讲述的按键按下 KeyDown 与按键抬起 KeyUp 情况相同)。 举例4:,下转:第三部分 键盘与鼠标事件 - 4,Private Sub Form_KeyPress(KeyAscii As Integer) 窗体的 KeyPreview 暂不设置! Print Chr(KeyAscii); KeyAscii End Sub Private Sub Command1_Click() Text1 = “学习VB” End Sub Private Sub Command2_Click() End End Sub,无法显示,34,7、KeyPress事件可作用的对象有: 窗体、文本框、滚动条、列表框、图片框、复选框 组合框、命令按钮以及与文件有关的控件。 不能响应该事件(即无键盘焦点)的有:标签框、框架、图像框、时钟等。,35,(二)键盘的KeyDown(按下)和KeyUp(抬起)事件,1、 KeyDown、KeyUp事件的一般格式: Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer) End Sub Private Sub Form_KeyUp(KeyCode As Integer,Shift As Integer) End Sub,2、事件参数:二种形式 1)KeyCode As Integer, Shift As Integer 用于单个控件(常 用) 2)Index As Integer 用于控件数组(不常用),3、参数含义: 复习:我们已经学过 KeyPress (KeyAscii) 返回“字符”的Ascii码的值 例键 A:若键入的是大写的 A,则值为 65 若键入的是小写的 a,则值为 97,36,KeyDown (KeyCode) 返回“键”的值 KeyUp,“键”的值以大写的字母的Ascii码为准。例键“A”,无论是“A”还是“a”,值只有65。也就是说:KeyCode只认“键”(不分大小写)。 注意:大键盘上的数字键与小键盘(数字键盘)上相同的数字键的 KeyCode 是不一样的。对于有上档字符和下档字符的键,其 KeyCode 均为下档字符的Ascii码值。以下是 KeyCode 与 KeyAscii 比较:,键(字符) KeyCode KeyAscii 键(字符) KeyCode KeyAscii A &H41 &H41 上档 % &H35 &H25 a &H41 &H61 下档 5 &H35 &H35 B &H42 &H42 1(大键盘上)&H31 &H31 b &H42 &H62 1(数字键盘上)&H61 &H31,37,举例5:编程试求KeyCode的值。注:计算机应用基础上无此参数,Private Sub Form_KeyDown(KeyCode As_ Integer, Shift As Integer) Static i As Integer i = i + 1 If i Mod 6 = 0 Then Print Chr(KeyCode); “-“; Hex(KeyCode); “ “; Print ElseIf KeyCode = 13 Then i = 0 Print: Print Else Print Chr(KeyCode); “-“; Hex(KeyCode); “ “; End If End Sub,1) 程序,38,下转:第三部分 键盘与鼠标事件 - 5,2)用户界面 键盘 KeyCode 码表(十六进制),A:41H = ( 4 * 16 1 +1 * 16 0 ) D= (64 + 1)D = 65D,AZ,1 0,F1F10,39,KeyDown (Shift) 返回3个转换键(Shift、 KeyUp Ctrl、Alt)的二进制值。,按下Shift键 001B 1D 按下Ctrl 键 010B 2D 按下 Alt 键 100B 4D 若以组合的形式同时按下以上二个或三个键,则Shift 参数返回的是二者或三者之和值。,十进制数 二进制数 作用 十进制数 二进制数 作用 0 000 末按转换键 4 100 按下Alt键 1 001 按下Shift键 5 101 按下Alt+Shift键 2 010 按下Ctrl键 6 110 按下Alt+Ctrl键 3 011 按下Ctrl+Shift键 7 111 按下Alt+Ctrl+Shift键,Shift参数表(三个转换键编码表),40,举例6:在窗体上建立一个标签,将按键产生的KeyCode参数的值赋予标签的 Caption。以演示KeyCode的值,并验证 KeyDown(压下)与 KeyUp(抬起)事件,下转:第三部分 键盘与鼠标事件 - 6,Option Explicit Private Sub Form_KeyDown(KeyCode As_ Integer, Shift As Integer) Label1.Caption = Str(KeyCode) End Sub Private Sub Form_KeyUp(KeyCode As_ Integer, Shift As Integer) Label1.Caption = “ End Sub,按下A,抬起A,41,举例7:在窗体上建立一个标签,将按键产生的 Shift参数的值赋予标签的 Caption。以演示 Shift 的值。并验证 KeyDown(压下)事件,KeyUp(抬起)事件,下转:第三部分 键盘与鼠标事件 - 7,Option Explicit Private Sub Form_KeyDown(KeyCode As_ Integer, Shift As Integer) Label1.Caption = Str(Shift) End Sub Private Sub Form_KeyUp(KeyCode As_ Integer, Shift As Integer) Label1.Caption = “” End Sub,压下Alt,42,举例8:设计组合键( Shift +Ctrl)用于文本框Text1显示“我爱中华”的功能 设计组合键(Shift+F2)用于工程“退出”功能 预备知识: VB规定:可用以下语句判断是否操作了Shift、Ctrl、Alt 若按下了Shift键 则 Shift And Shift 0 若按下了Ctrl 键 则 Shift And Ctrl 0 若按下了 Alt 键 则 Shift And Alt 0,1)用户界面:,1)用户程序:,按下Shift+Ctrl,43,下转:第三部分 键盘与鼠标事件 - 8,Option Explicit Private Const Shift = 1 Const用于定义符号常量Shift,以下同 Private Const ctrl = 2 Private Const key_F2 = &H71 Private shh As Integer 定义变量Shh为整型数,以下同 Private ctt As Integer Private f22 As Integer Private Sub text1_KeyDown(KeyCode As Integer, Shift As Integer) shh = (Shift And Shift) 0 ctt = (Shift And ctrl) 0 f22 = (KeyCode = key_F2) If shh And ctt Then Text1.Text = “我爱中华“ End If End Sub Private Sub text1_Keyup(KeyCode As Integer, Shift As Integer) If shh And f22 Then End End Sub,44,(三)鼠标事件过程,我们已学过的鼠标事件有:Click (单击) 和 DblClick (双击)事件。这是VB中最最重要的鼠标事件。,1、在VB中,还具有识别按下或抬起某个鼠标键而触发事件的功能。,2、VB提供了三个标准的过程模块,它们分别是:,Private Sub Form_MouseDown(Button As Integer, Shift As_ Integer, X As Single, Y As Single) End Sub Private Sub Form_MouseUp (Button As Integer, Shift As_ Integer, X As Single, Y As Single) End Sub Private Sub Form_MouseMove (Button As Integer, Shift As_ Integer, X As Single, Y As Single) End Sub,压下鼠标键,抬起鼠标键,移动鼠标键,45,3、上述事件过程适用于窗体、文本框、列表框、图片框、图像框、复选框、命令按钮、单选按钮、文件框、目录框、标签框、框架控件等。,4、鼠标事件过程的三个参数:Button、Shift、x、y 1)Button:鼠标键,3个取值,符号常量 值 作 用 Left_Button 1 按下鼠标的左键(默认) Right_Button 2 按下鼠标的右键 * Middle_Button 4 按下鼠标的中间键,符号常量 值 作 用 Left Right _Button 3 同时按下鼠标的左右键,又:,46,说明:对于 MouseDown 与 MouseUp 事件而言,鼠标的按钮参数 Button 只能判断一个键的压下或抬起,不能判断是否二个键同时操作。而采用 MouseMove 事件则可以判断按了一个或按了二(三)个键。,下转:第三部分 键盘与鼠标事件 - 9,举例9:编程试验 Button 的作用,Private Sub Form_MouseDown(Button As Integer, Shift As_ Integer, X As Single, Y As Single) If Button = 1 Then Print “按下左键“ If Button = 2 Then Print “按下右键“ If Button = 4 Then Print “按下中间键“ End Sub,47,举例10:采用 MouseMove 事件试验 Button 的作用,以下改变参数 Button 的值为 1 或 2 或 3 可观察按键的效果 Private Sub Form_MouseMove(Button As Integer, Shift As_ Integer, X As Single, Y As Single) If Button = 1 Then Print “按着左键” If Button = 2 Then Print “按着右键“ If Button = 3 Then Print “同时按着左右键“ End Sub,若仅想判断某键而不考虑判断其它键,可使用 And。,仅为左键: If Button And 1 Then Print “按着左键”,仅为左右键:If (Button And 3)=3 Then Print “同时按着左右键”,2)Shift: 表示当按下指定的鼠标键时,键盘上转换键 Shift、Ctrl、Alt 当前的状态。,下转:第三部分 键盘与鼠标事件 - 10,仅为右键: If Button And 2 Then Print “按着右键”,48,十进制数 二进制数 作用 十进制数 二进制数 作用 0 000 末按转换键 4 100 按下Alt键 1 001 按下Shift键 5 101 按下Alt+Shift键 2 010 按下Ctrl键 6 110 按下Alt+Ctrl键 3 011 按下Ctrl+Shift键 7 111 按下Alt+Ctrl+Shift键,Shift参数表(三个转换键编码表),举例11:对 Shift 参数 ( 包括Button参数 ) 的测试程序,1)用户界面:,2)用户程序:,49,Option Explicit Private Sub Form_MouseDown(Button As Integer, Shift As_ Integer, X As Single, Y As Single) If Shift = 1 And Button = 1 Then Print “同时按下Shift键和左键“ If Shift = 2 And Button = 1 Then Print “同时按下Ctrl键和左键“ If Shift = 4 And Button = 1 Then Print “同时按下Alt键和左键“ If Shift = 3 And Button = 2 Then Print “同时按下Ctrl、Shift键和 右键“ If Shift = 5 And Button = 2 Then Print “同时按下Alt、Shift键和 右键“ If Shift = 6 And Button = 2 Then Print “同时按下Alt、Ctrl键和 右键“ If Shift = 7 And Button = 2 Then Print “同时按下Shift、Alt、Ctrl 键和右键“ End Sub,下转:第三部分 键盘与鼠标事件 - 11,50,当移到某位置,压下键,x、y值由 MouseDown 事件过程的执行确定。抬起键亦是如此。 (x、y)是指被操作对象(窗体或控件)接收鼠标事件后确定的当前坐标。,举例12:在窗体上建立一个图片框控件,程序运行后使用鼠标 MouseDown、MouseUp、MouseMove使控件在窗体内任意移动并定位。,3)x、y 鼠标光标的当前位置 其由参数 x、y 确定。在实际操作中并不需要给出具 体的数值,而是由光标在窗体上的随意移动自我定 位。,51,2、用户程序:,Private Sub Form_MouseDown(Button As Integer, Shift As_ Integer, X As Single, Y As Single) Picture1.Move X, Y End Sub,Private Sub Form_MouseUp(Button As Integer, Shift As_ Integer, X As Single, Y As Single) Picture1.Move X, Y End Sub,Private Sub Form_MouseMove(Button As Integer, Shift As_ Integer, X As Single, Y As Single) Picture1.Move X, Y End Sub,下转:第三部分 键盘与鼠标事件 - 12,1、用户界面:,下转:第三部分 键盘与鼠标事件 - 13,下转:第三部分 键盘与鼠标事件 - 14,52,举例13:用鼠标事件在窗体上绘画。 预备知识:Pset( )函数 画点 DrawWidth 刷子 ForeColor 设置绘画颜色,1)用户界面:,2)用户程序:,用刷子写字,53,下转:第三部分 键盘与鼠标事件 - 15,Dim pp1 As Boolean 变量 pp1 在此的作用是一个开关,当其值为True 时画图,False时为停止作画 Private Sub Form_MouseDown(Button As Integer, Shift As_ Integer, X As Single, Y As Single) pp1 = True 允许画图 End Sub Private Sub Form_MouseUp(Button As Integer, Shift As_ Integer, X As Single, Y As Single) pp1 = False 禁止画图 End Sub Private Sub Form_MouseMove(Button As Integer, Shift As_ Integer, X As Single, Y As Single) If pp1 Then PSet (X, Y) End If End Sub Private Sub Form_Load() DrawWidth = 8 ForeColor = RGB(225, 0, 0) End Sub,Private Sub Form_DblClick() Cls End Sub,54,(四)鼠标光标的形状,一、MousePointer属性 鼠标光标的形状通过 MousePointer 属性来设置。该属 性可以在属性窗口中设置,也可以在程序代码中设置。 MousePointer 属性取一个整数,取值范围为 0 15。,取值 形状 取值 形状 0 默认状态,由对象决定 9 水平双箭头尺寸线 1 箭头 10 向上的箭头 2 十字线(指针) 11 沙漏 3 I 型盘 12 没有入口:一个圆形记号, 4 图标(嵌套方框) 表示控件移动受限 5 尺寸线(十字方向的箭头) 13 箭头和沙漏 6 右上左下双箭头尺寸线 14 箭头和问号 7 垂直双箭头尺寸线 15 四向尺寸线 8 左上右下双箭头尺寸线 99 特殊设定的自定义图标,55,二、设置鼠标光标的形状,1、在程序代码中设置属性 一般格式: 对象 . MousePointer = 设置值 (VB中的绝大多数对象均可设置自有的光标形状),举例14:在窗体上建立一个图片框,当鼠标移入框内时,鼠标光标变为一个十字线。试编写该事件过程。,Private Sub Picture1_MouseMove(Button As_ Integer, Shift As Integer,_ X As Single, Y As Single) Picture1.MousePointer = 2 End Sub,下转:第三部分 键盘与鼠标事件 - 16,56,举例15:编写一段程序,依次显示鼠标光标的形状。,下转:第三部分 键盘与鼠标事件 - 17,Private Sub Form_Click() Static a As Integer, x As Integer Cls Print Print “ 当前鼠标光标形状的MousePointer值是“; x Form1.MousePointer = x x = x + 1 If x = 16 Then x = 0 End Sub,57,2、在属性窗口中设置属性,下转:第三部分 键盘与鼠标事件 - 18,1)在设计态时,选中某对象(窗体、控件)。 2)在属性窗口中找到 MousePointer 属性条,之后 在下拉菜单中选择某属性。,58,(五)鼠标对对象的拖放,一、与拖放有关的属性、事件和方法 1、DragMode 属性 设置为人工拖放:属性值 = 0(默认) 设置为自动拖放:属性值 = 1 设置方法: (1)设计态时在属性窗口中设置 (2)程序代码中设置 例:pictuer1.DragMode = 1 注意:当一个对象的 DragMode 属性设置为1时,该 对象不再响应 Click 和 MouseDown 事件。 2、DragIcon 属性 在拖放对象时用于代表对象的图标,59,二、事件 1、DragDrop事件 当把对象拖放到目标后,若抬起鼠标键,则产生该事 件。 2、DragOver事件 当拖动对象越过一个控件时,产生DragOver事件。 3、事件过程格式:,Private Sub Picture1_DragDrop(Source As Control, X As_ Single, Y As Single) End Sub,Private Sub Picture1_DragOver(Source As Control, X As_ Single, Y As Single,State As Intrger) End Sub,4、事件过程参数: Source: 对象变量,类型为控件。该参数含有被拖,60,动对象的属性,例:if Source.Name=“Folder” Then 用来判断被拖动对象的 Name 属性是否为“Folder”. X , y 参数是抬起鼠标键放下对象时鼠标光标的位置。 State:有三个值。 0 鼠标光标正进入目标对象的区域 1 鼠标光标正退出目标对象的区域 2 鼠标光标正位于目标对象的区域之内 三、方法: 方法有 Move 和 Drag, Drag 用于手动拖放操作。 Drag 格式: 控件 . Drag 整数 0 取消指定控件的拖放 1 当Drag方法出现在控件的事件过程中时, 启动控件的拖放,61,2 结束控件的拖放,并发出一个DragDrop事件,四、鼠标对对象的拖放 1、自动拖放 举例17:设计一个简单的自动拖放实例 (不使用 Drag ) 1)在窗体上建立一个图片框,框中装入图标文件(在 设计态时于属性窗口的 Picture 属性中选取图标) 2)将属性窗口的 DragMode 属性设置为1-Automatic (即自动拖放模式) 3)设计DragDrop事件过程,(一)用户界面:,(二)用户程序:,下转:第三部分 键盘与鼠标事件 - 19,Private Sub Form_DragDrop(Source_ As Control, X As Single, Y As Single) Picture1.Move X, Y End Sub,图标可见,62,举例18:设计一个简单的自动拖放实例。要求:平时 图标不可见,运行时图标才显现。 1)在窗体上建立一个图片框,框中装入图标文件(在 设计态时于属性窗口的 DragIcon 属性中选取图标,或 在程序代码中指明装入的图标的路径) 2)将属性窗口的DragMode属性设计为1-Automatic (即自动拖放模式) 3)设计DragDrop事件过程,(一)用户界面:,图标不可见,Private Sub Form_DragDrop(Source As Control, X As_ Single, Y As Single) Picture1.DragIcon = LoadPicture(“d:tangClient.ico“) Picture1.Move X, Y End Sub,(二)用户程序:,下转:第三部分 键盘与鼠标事件 - 20,63,2、手动拖放,举例19:一个手动拖放实例,(一)用户界面:,(二)用户程序:,为实现手动拖放,1)属性窗口的 DragMode 属性保持 为默认值 “0 - Manual”(即人工方式),方法 Drag 为默认值,64,Private Sub Form_Load() Picture1.DragIcon = Picture1.Picture End Sub Private Sub Picture1_MouseDown(Button As Integer, Shift_ As Integer, X As Single, Y As Single) Picture1.Drag 1 End Sub Private Sub Picture1_MouseUp(Button As Integer, Shift As_ Integer, X As Single, Y As Single) Picture1.Drag 2 End Sub Private Sub Form_DragDrop(Source As Control, X As_ Single, Y As Single) Source.Move X, Y Source.Move (X - Source.Width / 2), (Y - Source.Height / 2) End Sub,下转:第三部分 键盘与鼠标事件 - 21,65,四、VB通用对话框,一、对话框的定义与分类: 1、 对话框的定义: 具有显示信息并接收用户信息的功能框(实际上是一种特殊的窗体)称对话框。 我们已学习过 InputBox 键盘输入信息对话框与MsgBox 简单信息消息框,这二种对话框仅具极简单的功能。若对话功能较为复杂,怎么办?这就需要用到通用对话框。 2、对话框的分类: 1)预定义对话框:,66,即VB提供的 InputBox 与MsgBox 。 2)自定义对话框(或称定制对话框): 用户通过创建用户界面与编写程序来获得。例如教材第二章介绍的用于改变文字风格的单选按钮、复选框、框架等控件的使用,实际上就是一种自定义对话框。这种对话框由于要求用户自己定制,比较繁。,3)通用对话框: 用户自己定制对话框比较繁,为此VB考虑到这种需求,已为用户设置了专用控件:通用对话框控件。使用该控件能够方便地设计出功,能较为复杂的对话框。,67,二、通用对话框: 1、通用对话框控件: 工具箱 部件 控件 Microsoft Common Dialog Control 6.0 确定 2、通用对话框的类型: 为方便用户的使用,VB提供了几种不同类型的通用对话框。,控件图标,对话框类型 方法 Action属性 打开文件 对象名. ShowOpen 对象名.Action= 1 保存文件 对象名. ShowSave 对象名.Action= 2 选择颜色 对象名. ShowColor 对象名.Action= 3 选择字体 对象名. ShowFont 对象名.Action= 4 打印 对象名. ShowPrinter 对象名.Action= 5 调用Help文件 对象名. ShowHelp 对象名.Action= 6,对象名:CommonDialog1,68,3、通用对话框类型的举例(基本特征): 1

温馨提示

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

评论

0/150

提交评论