VB二级D7.docx
- 文档编号:27921223
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:35
- 大小:170.87KB
VB二级D7.docx
《VB二级D7.docx》由会员分享,可在线阅读,更多相关《VB二级D7.docx(35页珍藏版)》请在冰豆网上搜索。
VB二级D7
D7:
8月28日
第一部分笔试模拟题第一套(选择题25—30,填空题1~5)
1、选择题24题
Static:
使用static关键字定义的变量,在第一次调用过程对其进行初始化。
过程调用完毕,变量的值保持不变,当第二次调用。
第三次调用时均不再执行初始化语句。
Privatexasintegerx定义在窗体模块通用部分,在整个窗体模块内有效
Privatesubcommand1_click()
Staticyasinteger
Dimzasinteger
N=10
Z=z+n
Y=y+z
X=x+z
Printx;y;z
endsub
程序一运行,显示窗体时,即为x分配存储空间
第一次单击命令按钮:
给y、z分配存储空间(第一次调用,为静态变量y分配空间),z=10,y=10,x=10,输出101010。
调用完毕后,z的存储空间回收
第二次单击命令按钮,因为x是窗体级变量,窗体没有关闭,x保持不变(x=10);
因为y是静态变量,第二次遇到定义语句(staticy)不执行,y保持不变(y=10);
因为z是过程级变量,第二次给z分配空间(z=0),z=10,y=20,x=20
第三次调用命令按钮,x=20,y=20,z=0,z=10,y=30,x=30
窗体模块级变量:
当窗体第一次出现时定义,关闭窗体时回收空间
过程级变量:
执行过程时定义,过程执行完毕后回收空间
静态变量:
第一次执行过程时定义,过程执行完毕后不回收空间;第二次、第三次执行过程时不再重新分配存储空间
2、选择题29题
FunctionF(aasinteger)双向传递
B=0过程级变量,属于f过程
Staticc
B=b+1
C=c+1
F=a+b+c
Endfunction(形参反向传递给实参,回收b的空间,不回收c的空间)
privatesubcommand1_click()
Dimaasinteger过程级变量
A=2
Fori=1to3
Printf(a)
nexti
Endsub
第一次执行printf(a)求f
(2),形参a=实参a=2,b=0,c=0,b=0+1=1
C=0+1=1,f=2+1+1=4,实参a=形参a=2,输出4
第二次执行,求f
(2),形参a=2,b=0,c=1,b=0+1=1,c=1+1=2,f=2+1+2=5,实参a=2,
输出5
第三次执行,求f
(2),形参a=2,b=0,c=2,b=0+1=1,c=2+1=3,f=2+1+3=6,输出6
3、选择题28题
DimxAsIntegerx是一个窗体模块变量
PrivateSubForm_Click()
Dimx,yx,y是过程级变量,
x=5使用过程变量
y=3使用过程变量
Callproc(x,y)实参x是过程变量x,因为传递参数方式为传值,实参传递给形参,不能反向传递,实参值不会变化,x=5,y=3
Printx;y
EndSub
Subproc(ByValaAsInteger,ByValbAsInteger)
x=a*a
y=b+b
EndSub
对比观察,培训教材P102第2题
PublicxAsInteger,yAsIntegerx是public,在工程中大家都可以用x;y也是同样,在整个工程中可以使用
Subvar_pub()public
x=10x使用通用变量x,不能使用form_clcik()过程变量x
y=20y使用通用变量y
EndSub
PrivateSubForm_Click()
DimxAsIntegerx是一个过程变量,属于form_click()事件过程
Callvar_pub通用变量x=10,通用变量y=20
x=x+100x是使用过程变量,过程变量x=100
y=y+100y是使用通用变量,y=20+100=120
Printx;y
EndSub
填空题第2题:
循环队列中元素个数:
│rear-front+长度│mod长度
第二部分总结复习D6相关知识:
第三部分:
新知识
第九章键盘与鼠标事件过程
一、键盘事件(keypress/keydown/keyup)
什么时候发生,参数
9.1KeyPress事件
1、定义:
当按下键盘上的某个键时,即发生KeyPress事件
2、格式:
PrivateSubTextl_KeyPress(KeyAsciiAsInteger)
EndSub
Keyascii:
按下键的ascii值
Eg.按下a,keyascii=97;按下A,keyascii=65
3、说明:
(1)KeyPress事件带有一个参数,这个参数有两种形式,第1种形式是IndexAsInteger,只用于控件数组;第2种形式是KeyAsciiAsInteger,用于单个控件,表示键盘上按下的键的ASCII码。
(2)默认情况下,控件的键盘事件优先于窗体的键盘事件(只要窗体上有其他的控件,窗体keypress事件不会发生)。
如果希望窗体先接收键盘事件,必须把窗体的KeyPreview属性设置为true。
●焦点在哪个控件上,按下键盘后就触发这个控件的keypress事件
●如果窗体上具有控件,同时将窗体keypreview属性设为true,先触发窗体keypress事件,再触发具有焦点的keypress事件
例题:
在窗体上画1个命令按钮和1个文本框,其名称分别为Command1和Text1,再编写如下程序:
DimssAsString
PrivateSubText1_KeyPress(KeyAsciiAsinteger)
Ifchr(KeyAscii)<>“”Thenss=ss+chr(KeyAscii)ch()转换为字符串
EndSub
如果按下键不是空格,连在ss后面
PrivateSubCommand1_Click()
DimmAsString,iAsInteger
Fori=Len(ss)To1step-1
m=m+Mid(ss,i,1)
Next
依次取字符串ss中最后一个、倒数第2个、倒数第3个、、、,连接到m中
Text1.Text=Ucase(m)
EndSub
程序运行后,在文本框中输入“Number100”,并单击命令按钮,则文本框中显示的是。
ss=”Number100”
A)NUMBER100B)REBMUNC)REBMUN100D)001REBMUN
【答案】D
2.以下说法中正确的是A。
A)当焦点在某个控件上时,按下一个字母键,就会执行该控件的KeyPress事件过程
B)因为窗体不接受焦点,所以窗体不存在自己的KeyPress事件过程
Keypreview=true
C)若按下的键相同,KeyPress事件过程中的KeyAscii参数与KeyDown事件过程中的KeyCode参数的值也相同
D)在KeyPress事件过程中,KeyAscii参数可以省略
【答案】A
3.在窗体上画一个命令按钮和一个文本框(名称分别为Command1和Text1),并把窗体的KeyPreview属性设置为True,然后编写如下代码:
Dim SaveAll As Stringsaveall是窗体模块变量
Private Sub Form_Load()
Show显示窗体
Text1.Text = ""
Text1.SetFocustext1活动焦点
End Sub
Private Sub Command1_Click()
Text1.Text = LCase(SaveAll) + SaveAll
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
SaveAll = SaveAll + Chr(KeyAscii)
End Sub
当在键盘上按下键时,把它转换到字符串,连接到saveall中
程序运行后,直接用键盘输入:
VB(saveall=”VB”),再单击命令按钮,则文本框中显示的内容为a。
A)vbVBB)不显示任何信息C)VBD)出错
【答案】A
9.2KeyDown和KeyUp事件
1、定义:
当控制焦点在某个对象上时,按下键盘上任一键,便会引发对象KeyDown事件,释放按键便会触发KeyUp事件
(1)keydown:
按下发生keyup:
释放发生
(2)按下某个键:
keydown->keypress->keyup
2、格式:
(1)KeyDown事件
PrivateSubTextl_KeyDown(KeyCodeAsInteger,ShiftasInteger)
EndSub
(2)KeyUp事件
PrivateSubTextl_KeyUp(KeyCodeAsInteger,ShiftasInteger)
EndSub
3、参数说明:
(1)KeyCode是按键的实际ASCII码。
该码以“键”为准,而不是以“字符”为准。
Keycode表示键在键盘上的位置
●按下A和按下a,它们产生keycode,因为在同一位置
●按下小键盘的1和按下大键盘1,产生keycode,因为不在同一个位置
(2)Shift转换键。
代表shift、ctrl、alt
1.在窗体上画一个命令按钮和两个文本框,其名称分别为Command1、TextI和Text2,在属性窗口中把窗体的KeyPreview属性设置为True,然后编写如下程序:
DimS1AsString,S2AsString
PrivateSubForm_Load()
Text1.Text=""
Text2.Text=""
Text1.Enabled=False
Text2.Enabled=False
EndSub
PrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
S2=S2&Chr(KeyCode)
EndSub
PrivateSubForm_KeyPress(KeyAsciiAsInteger)
S1=S1&Chr(KeyAscii)
EndSub
PrivateSubCommand1_Click()
Text1.Text=S1
Text2.Text=S2
S1=""
S2=""
EndSub
程序运行后,先后按“a”、“b”、“c”键,然后单击命令按钮,在文本框Text1和Text2中显示的内容分别为A。
当按下a时,触发form_keydown事件(keycode=65),s2=”A”;
触发form_keypress事件(keyascii=97),s1=”a”
当按下b时,触发form_keydown事件(keycode=66),s2=”AB”
触发form_keypress事件(keyascii=98),s1=”ab”
A)abc和ABCB)空白C)ABC和abcD)出错
【答案】A
2.VB中有3个键盘事件:
KeyPress、KeyDown、KeyUp,若光标在Text1文本框中,则每输入一个字母,。
A)这3个事件都会触发B)只触发KeyPress事件
C)只触发KeyDown、KeyUp事件D)不触发其中任何一个事件
【答案】A
9.3鼠标事件
一、鼠标事件种类
1、mousedown事件:
按下鼠标
2、mouseup事件:
松开鼠标
3、mousemove事件:
移动
二、鼠标事件格式
1、Privatesub控件名称_鼠标事件名称(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
2、控件名称:
鼠标在哪个控件上作用
Eg.form_mousedown()鼠标在窗体上按下
Emand1_mouseup()鼠标在command1上松开
3、参数
(1)button:
表示按下鼠标上哪个键,1—左键,2-右键
(2)shift:
shift、ctrl、alt
1.设窗体中有一个文本框Text1,若在程序中执行了Text1.SetFocus,则触发。
A)Text1的SetFocus事件B)Text1的GotFocus事件C)Text1的LostFocus事件D)窗体的GotFocus事件
【答案】B
2.设窗体的名称为Form1,标题为Win,则窗体的MouseDown事件过程的过程名是
A)Form1_MouseDownB)Win_MouseDownC)Form_MouseDownD)MouseDown_Form1
【答案】C
3.要求当鼠标在图片框P1中移动时,立即在图片框中显示鼠标的位置坐标。
下面能正确实现上述功能的事件过程是。
P1_mousemove
A)PrivateSubP1_MouseMove(ButtonASInteger,ShiftAsInteger,XAsSingle,YAsSingle)
PrintX,Y默认对象应该是窗体
EndSub
B)PrivateSubP1_MouseDown(ButtonASInteger,ShiftAsInteger,XAsSingle,YAsSingle)
Picture.PrintX,Y
EndSub
C)PrivateSubP1_MouseMove(ButtonASInteger,ShiftAsInteger,XAsSingle,YAsSingle)
P1.PrintX,Y
EndSub
D)PrivateSubForm_MouseMove(ButtonASInteger,ShiftAsInteger,XAsSingle,YAsSingle)
P1.PrintX,Y
EndSub
【答案】C
4.若看到程序中有以下事件过程,则可以肯定的是,当程序运行时。
PrivateSubClick_MouseDown(ButtonAsInteger,_ShiftAsInteger,XAsSingle,YAsSingle)
Print“VBProgram”
EndSub
A)用鼠标左键单击名称为“Command1”的命令按钮时,执行此过程
B)用鼠标左键单击名称为“MouseDown”的命令按钮时,执行此过程
C)用鼠标左键单击名称为“MouseDown”的控件时,执行此过程
D)用鼠标左键或右键单击名称为“Click”的控件时,执行此过程
【答案】D
9.4鼠标光标的形状
一、MousePointer属性:
光标形状
每一个控件都可以设
二、设置鼠标光标形状
1、代码中设置MousePointer属性:
对象.MousePointer=设置值
2、在属性窗口中设置MousePointer属性
9.5拖放:
当鼠标在某个控件上按下左键不放,同时移动鼠标
1、属性:
有两个属性与拖放有关,即DragMode和DragIcon。
(1)dragmode:
0不允许拖;1允许拖放
(2)dragicon:
2、事件:
与拖放有关的事件是DragDrop和DragOver
(1)PrivateSub控件1_DragDrop(SourceAsControl,XAsSingle,YAsSingle)
当source控件被鼠标拖动到了控件1上的时候,就触发控件1的dragdrop
3、方法
(1)move方法
(2)Drag方法的格式为:
控件.Drag整数
Drag方法用来设置能否拖放。
控件.drag0不能拖动
控件.drag1可以拖动
综合自测
1.在窗体上画1个文本框,其名称为Text1,然后编写如下过程:
PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
PrintChr(KeyCode)
EndSub
PrivateSubText1_KeyUp(KeyCodeAsInteger,ShiftAsInteger)
PrintChr(KeyCode+2)
EndSub
程序运行后,把焦点移到文本框中,此时如果敲击“a”键,则输出结果为。
A)AAB)ABC)ACD)AD
2.有一个名称为Form1的窗体,上面没有控件,设有以下程序(其中方法Pset(X,Y)的功能是在坐标X,Y处画一个点):
DimcmdmaveAsBoolean
PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
cmdmave=True
EndSub
PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
IfcmdmaveThen当cmdmave=true,在鼠标当前位置画一个点
Form1.Pset(X,Y)
EndIf
EndSub
PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
cmdmave=False
EndSub
此程序的功能是。
A)每按下鼠标键一次,在鼠标所指位置画一个点
B)按下鼠标键,则在鼠标所指位置画一个点;放开鼠标键,则此点消失
C)不按鼠标键而拖动鼠标,则沿鼠标拖动的轨迹画一条线
D)按下鼠标键并拖动鼠标,则沿鼠标拖动的轨迹画一条线,放开鼠标键则结束画线
3.在窗体上先后画2个图片框,名称分别为Picturel和banana,banana中添加了香蕉图片(见图1),且将banana,,DragMode属性设置为1。
要求程序运行时,可以用鼠标把banana拖拽到Picturel中(见图2)。
能实现此功能的事件过程是。
发生dragdrop对象_dragdrop(sourceascontrl,,,,,)把source控件拖到对象上时发生
Picture1_dragdrop()
A)PrivateSubForm_DragDrop(SourceAsControl,XAsSingle,YAsSingle)
Banana,MovePicturel.Left+X,Picturel.Top+Y
EndSub
B)PrivateSubbanana_DragDrop(SourceAsControl,XAsSingle,YAsSingle)
Source.MovePiceurel.Left+X,Piceturel.Top+Y
EndSub
C)PrivateSubprcturel_DragDrop(SourceAsComtrol,XAsSingle,YAsSingle)
Source.MovePicturel.Left+X,Picturel.Top+Y
EndSub
D)PrivateSubPicturel_DragDrop(SourceAsControl,XAsSingle,YAsSingle)
banana.MovebananaLeft+X,bananal.Top+Y
EndSub
4.在窗体上画一个名称为TxtA的文本框,然后编写如下的事件过程:
PrivateSubTxtA_KeyPress(KeyAsciiAsInteger)
……
EndSub
假定焦点已经位于文本框中,则能够触发KeyPress事件的操作是。
A))单击鼠标B)双击文本框
C))鼠标滑过文本框D)按下键盘上的某个键
第十章菜单与对话框
10.1菜单
一、VB菜单分类
弹出式菜单和下拉式菜单
二、下拉式菜单
1、下拉式菜单结构:
主菜单(文件)、菜单项(新建、打开、保存)
2、设计下拉式菜单
使用“菜单编辑器”建立菜单:
创建菜单、界面设计、编写程序代码
3、菜单项响应事件:
click事件
单击菜单项时发生;每一个菜单项都有自己的click事件
三、菜单编辑器
1、打开菜单编辑器
方法1:
选择“工具”-“菜单编辑器”命令
方法2:
快捷键:
Ctrl+E
方法3:
单击工具栏中的“菜单编辑器”按钮
方法4:
在要建立菜单的窗体上单击右键,在弹出的快捷菜单中选择“菜单编辑器”命令。
2、菜单编辑器使用
标题:
输入要建立的菜单标题。
名称:
菜单及各菜单项的名称,相当于控件的name属性。
索引:
用来确定菜单命令在菜单控件数组中的序号。
快捷键:
用来设置菜单项的快捷键。
复选:
是否允许在菜单命令的左边设置复选标记。
有效:
指定该菜单是否可操作。
可见:
设置该项菜单命令是否显示在菜单上。
编辑区:
●左、右箭头:
用来设定内缩符号,确定菜单项的层次。
●上、下箭头:
用来移动改变菜单项的位置。
●下一个:
开始一个新菜单。
●插入:
在当前菜单命令前插入一个新的菜单命令前插入一个新的菜单命令。
●删除:
删除当前菜单项。
显示区:
显示已经创建的菜单命令和层次关系。
创建完毕,单击“确定”按钮,关闭菜单编辑器,在窗体中查看创建的菜单。
案例1标签的显示和隐藏
案例2两个整数的加减
案例3两个整数的加减乘除
四、弹出式菜单
1、定义:
弹出式菜单又称“快捷菜单”或“右键菜单”,是当用户单击右键时弹出的菜单。
2、创建弹出式菜单
(1)打开菜单编辑器,建立菜单,将主菜单的“可见”属性设置为False。
(2)用命令格式:
对象名.PopupMenu菜单名,[Flags],[x],[y],[DefaultMenu]
Flag:
表示位置和行为
将创建的菜单显示出来。
Privatesubform_mousedown(buttonasinteger,….)
Ifbutton=2then在窗体上按下鼠标右键
Form1.popupmenu菜单名
Endif
Endsub
案例4修改案例3为弹出式菜单
案例5弹出式菜单
1.在菜单编辑器中建立一个名称为Menu0的菜单项,将其“可见”属性设置为False,并建立其若干子菜单,然后编写如下过程,则以下叙述中错误的是________。
PrivateSubForm_MouseDown(ButtonAs
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 二级 D7