VB二级D7.docx

上传人:b****5 文档编号:27921223 上传时间:2023-07-06 格式:DOCX 页数:35 大小:170.87KB
下载 相关 举报
VB二级D7.docx_第1页
第1页 / 共35页
VB二级D7.docx_第2页
第2页 / 共35页
VB二级D7.docx_第3页
第3页 / 共35页
VB二级D7.docx_第4页
第4页 / 共35页
VB二级D7.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

VB二级D7.docx

《VB二级D7.docx》由会员分享,可在线阅读,更多相关《VB二级D7.docx(35页珍藏版)》请在冰豆网上搜索。

VB二级D7.docx

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模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1