VB补充知识更新版打印.docx
- 文档编号:27575760
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:42
- 大小:98.71KB
VB补充知识更新版打印.docx
《VB补充知识更新版打印.docx》由会员分享,可在线阅读,更多相关《VB补充知识更新版打印.docx(42页珍藏版)》请在冰豆网上搜索。
VB补充知识更新版打印
VB补充知识(更新版)
一、用户定义数据类型
【格式】Type数据类型名
数据类型元素名As类型名
……
EndType
Type语句用于在模块级别中定义一个用户自己的数据类型,它本质是一个数据类型集合,含有一个或多个元素,每个元素可以被定义为不同的数据类型。
过程以外的任何代码都将看作模块级别代码。
用Type语句定义的数据类型也称为记录类型。
例1若在窗体模块的声明部分声明了如下自定义类型和数组
PrivateTyperec
CodeAsInteger
CaptionAsString
EndType
Dimarr(5)Asrec
则下面的输出语句中正确的是:
(10年3月真题)
A)Printarr.Code
(2),arr.Caption
(2)
B)Printarr.Code,arr.Caption
C)Printarr
(2).Code,arr
(2).Caption
D)PrintCode
(2),Caption
(2)
二、暂停语句
其格式为:
Stop。
类似于执行“运行”菜单中的“中断”命令,用来暂停程序的执行。
三、与Print方法有关的函数
(1)Tab函数
其格式为:
Tab(n)。
将光标移至由参数n(列号)所指定的位置,并从这个位置开始输出信息。
(2)Spc函数
其格式为:
Spc(n)。
在输出时跳过n个空格。
(3)空格函数
其格式为:
Space$(n)。
返回一个由n个空格组成的字符串。
例1设有如下程序:
(11年9月真题)
PrivateSubForm_Click()
Cls
a$="123456"
Fori=1To6
PrintTab(12-i);
Nexti
EndSub
程序运行后,单击窗体,要求结果如图所示,则在处应填入的内容为
A)Left(a$,i)B)Mid(a$,8-i,i)C)Right(a$,i)D)Mid(a$,7,i)
四、打印机输出
(1)直接输出
直接输出,就是把信息直接送往打印机,仍是用Print方法,输出对象改为Printer。
其格式为:
Printer.Print[表达式]。
这里的Print及其“表达式”的含义同Print方法的含义相同。
执行上述语句后,就把“表达式”的值在打印机上打印出来。
(2)窗体输出
在VB中,还可以用PrintForm方法通过窗体来打印信息,其格式为:
[窗体].PrintForm。
格式中的“窗体”是要打印的窗体名,如果打印当前窗体的内容,或者对一个窗体操作,则窗体名可以省略。
五、直线和形状
1.直线控件和形状控件功能
直线控件和形状控件也是图形控件,提供了显示一些规则图形的简易方法。
直线控件和形状控件的形状。
2.直线控件和形状控件属性
直线控件和形状控件具有Name和Visible属性:
直线具有位置属性X1、Y2和X2、Y2分别表示直线两个端点的坐标;形状还具有Height、Left、Top、Width等标准属性。
此外,直线和形状还具有如下7个主要属性:
(1)BorderClolor属性:
用于设置边框颜色。
(2)BorderStyle属性:
用于设置边框样式。
(3)BackStyle属性:
用于设置背景是否透明:
0-Transparent,表示设置成透明样式(默认值);1-Opaque,表示设置成非透明样式。
如果该值为0,则忽略该控件的BackColor属性。
(4)FillStyle属性:
用于设置填充样式。
(5)FillColor属性:
用于设置填充颜色。
(6)BorderWidth属性:
用于设置边框线宽,其值从1~8192,包括1和8192。
(7)Shape属性:
只有形状控件具备。
通过设置Shape属性,可显示6种图形:
0-矩形、1-正方形、2-椭圆、3-圆、4-圆角矩形、5-圆角正方形,缺省值为0。
当形状为圆时,Width属性表示圆的直径。
熟记:
Shape属性的6种设置值。
例1窗体的左右两端各有1条直线,名称分别为Line1、Line2;名称为Shape1的圆靠在左边的Line1直线上(见图);另有1个名称为Timer1的计时器控件,其属性值为True。
要求程序运行后,圆每秒向右移动100,当圆遇到Line2时则停止移动。
为实现上述功能,某人把计时器的Interval属性设置为1000,并编写了如下程序:
(09年9月真题)
PrivateSubTimer1_Timer()
Fork=Line1.X1ToLine2.X1Step100
IfShape1.Left+Shape1.Width Shape1.Left=Shape1.Left+100 EndIf Nextk EndSub 运行程序时发现圆立即移动到右边的直线处,与题目要求的移动方式不符。 为得到与题目要求相符的结果,下面修改方案中正确的是 A)把计时器的Interval属性设置为1 B)把Fork=Line1.X1ToLine2.X1Step100和Nextk两行删除 C)把Fork=Line1.X1ToLine2.X1Step100改为把Fork=Line2.X1ToLine1.X1Step100 D)把IfShape1.Left+Shape1.Width 例2如果一个直线控件在窗体上呈现为一条垂直线,则可以确定的是: (11年3月真题) A)它的Y1、Y2属性的值相等 B)它的X1、X2属性的值相等 C)它的X1、Y1属性的值分别与X2、Y2属性的值相等 D)它的X1、X2属性的值分别与Y1、Y2属性的值相等 例3窗体上有一个名称为Shape1的形状控件和由三个命令按钮组成的名称cmdDraw的控件数组。 窗体外观如图所示(从上到下的3个命令按钮下标分别为0、1、2)。 有事件过程如下: (12年9月真题) PrivateSubcmdDraw_Click(IndexAsInteger) SelectCaseIndex Case0 Shape1.shape=0 Case1 Shape1.shape=1 Case2 Shape1.Shape=3 EndSelect EndSub 当单击“画圆”命令按钮时,会执行cmdDraw_Click事件过程。 以下叙述中正确的是 A、Case2分支有错,此Case后面表达式的值应该与赋给Shape1.Shape的值一致 B、程序运行有错,控件数级别的下标应该从1开始 C、Index是形状控件的参数 D、程序正常运行,形状控件被显示为圆形 六、Tab顺序 Tab顺序是在按Tab键时焦点在控件间移动的顺序。 当窗体上有多个控件时,每按一次Tab键,可以使焦点从一个控件移动到另一个控件。 在设计阶段可以通过属性窗口中的TabIndex属性来改变对象的Tab属性。 七、可选参数和可变参数 VB在调用一个过程时允许使用可选参数和可变参数向过程传送可选的参数或者任意数量的参数。 1.可选参数 在调用一个过程时,并不是每次都要传递所有的参数。 有些参数是为了提供某项功能,但这项功能不是每次调用该过程时都需要的。 为了定义可选参数,需要在参数表中使用Optional关键字来指定可选参数。 使用可选参数时还应该注意两点要求: 如果某个参数被指定为可选参数,那么它后面的参数必须都是可选的;可选参数必须是Variant类型。 2.可变参数 可变参数过程通过ParamArray关键字来定义。 在使用可变参数时应注意四个规则: ParamArray只能用于参数列表中的最后一个参数;ParamArray声明的参数数组只能是Variant类型;ParamArray不能和ByVal关键字、ByRef关键字以及Optional关键字一起使用;ParamArray声明的参数数值,无论是否使用OptionBase1语句,它的下界总是0。 八、窗体参数和控件参数 1.窗体参数 【格式】Sub过程名(形式参数表) 语句块 [ExitSub] …… EndSub 用窗体作为通用过程的参数。 “形式参数表”中的形参的类型通常为Form。 2.控件参数 在VB中不仅可以使用窗体作为通用过程的参数,还可以使用控件作为通用过程参数。 控件参数用法同窗体参数,不过形参类型一般为Control。 应用: 在调用含有对象的过程时,对象只能通过传地址方式传送,故此不能再其参数前加关键字ByVal。 3.Shell函数 其格式为: Shell(命令字符串[,窗口类型])。 Shell语句用于运行一个可执行文件(COM、EXE文件)。 如果成功,将返回一个代表这个程序的任务ID;若不成功,则会返回0。 “命令字符串”是要执行的应用程序的名称(包括路径),但它必须是可执行文件;“窗口类型”是调用应用程序时程序运行窗口的大小。 应用: 注意Shell函数与语句的区别。 九、多重窗体 多重窗体是指在一个工程中同时存放有多个并列的普通窗体,每个普通窗体都有自己的设计界面和相对应的程序代码,它们各自执行着自己的功能。 例1以下描述中错误的是: (11年9月真题) A)在多窗体应用程序中,可以有多个当前窗体 B)多窗体应用程序的启动窗体可以在设计时设定 C)多窗体应用程序中每个窗体作为一个磁盘文件保存 D)多窗体应用程序可以编译生成一个EXE文件 例2以下关于多窗体的叙述中,正确的是: (12年3月真题) A)任何时刻,只有一个当前窗体 B)向一个工程添加多个窗体,存盘后生成一个窗体文件 C)打开一个窗体时,其他窗体自动关闭 D)只有第一个建立的窗体才是启动窗体 十、键盘事件 常见的键盘事件有: KeyDown、KeyPress和KeyUp。 当用户按下并释放一个可打印的键盘字符时,KeyDown、KeyPress、KeyUp事件将依次发生。 例1VB中有3个键盘事件: KeyPress、KeyDown、KeyUp,若光标在Text1文本框中,则每输入一个字母: (10年3月真题) A)这3个事件都会触发B)只触发KeyPress事件 C)只触发KeyDown、KeyUp事件D)不触发其中任何一个事件 例2以下说法中正确是的: (09年3月真题) A)当焦点在某个控件上时,按下一个字母键,就会执行该控件的keypress事件过程 B)因为窗体不接受焦点,所以窗体不存在自己的keypress事件过程 C)若按下的键相同,keypress事件过程中的keyascii参数与keydown事件过程中的keycode参数的值也相同 D)在keypress事件过程中,keyascii参数可以省略 1.KeyPress事件 【格式】PrivateSub控件名_KeyPress(KeyAsciiAsInteger) …… EndSub KeyAscii参数是所按键的ASCII码值,该参数传递一个字符,并且把字符的大、小写形式作为两种不同的字符。 定义KeyPress事件过程的操作过程为: 首先在窗体上面一个控件(这里指可以发生KeyPress事件的控件,如文本框等);然后双击该控件,进入程序代码窗口后;在“过程”框中选取KeyPress事件,在其中编写程序代码即可。 例3在窗体上画一个命令按钮和一个文本框(名称分别为Command1和Text1),并把窗体的Keyprewiew属性设置为True,然后编写如下代码: (09年3月真题) DimSaveAllAsString PrivateSubForm_Load() Show Text1.Text=”” Text1.SetFocus EndSub PrivateSubCommand1_Click() Text1.Text=Lcase(SaveAll)+SaveAll EndSub PrivateSubForm_KeyPress(KeyAsciiAsInteger) SaveAll=SaveAll+Chr(KeyAscii) EndSub 程序运行后,直接用键盘输入: VB,再单击命令按钮,则文本框中显示的内容为 A)vbVBB)不显示任何信息C)VBD)出错 例4在窗体上画1个命令按钮和1个文本框,其名称分别为Command1和Text1,再编写如下程序: (09年9月真题) DimssAsString PrivateSubText1_KeyPress(KeyAsciiAsInteger) IfChr(KeyAscii)<>""Thenss=ss+Chr(KeyAscii) EndSub PrivateSubCommand1_Click() DimmAsString,iAsInteger Fori=Len(ss)To1Step-1 m=m+Mid(ss,i,1) Next Text1.Text=UCase(m) EndSub 程序运行后,在文本框中输入“Number100”,并单击命令按钮,则文本框中显示的是 A)NUMBER100B)REBMUNC)REBMUN100D)001REBMUN 2.KeyDown事件和KeyUp事件 【格式】PrivateSub控件名_KeyDown(KeyCodeAsInteger,ShiftAsInteger) …… EndSub 【格式】PrivateSub控件名_KeyUp(KeyCodeAsInteger,ShiftAsInteger) …… EndSub KeyCode参数是表示所按键的位置信息的代码(不是ASCII码,而是每个键的代码),Shift参数代表按键时Shift键、Ctrl键和Alt键的状态。 应用: 注意参数KeyAscii和KeyCode的区别。 例5在窗体上画一个命令按钮和两个文本框,其名称分别为Command1、TextI和Text2,在属性窗口中把窗体的KeyPreview属性设置为True,然后编写如下程序: (10年9月真题) DimSIAsString,S2AsString PrivateSubFormLoad() Text1.Text="" Text2.Text="" Text1.Enabled=False Text2.Enabled=False EndSub PrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger) S2=S2&Chr(KeyCode) EndSub PrivateSubForin_KeyPress(KeyAsciiAsInteger) S1=S1&Chr(KeyAscii) EndSub PrivateSubCommandlClick Textl.Text=Sl Text2.Text=S2 S1="" S2="" EndSub 程序运行后,先后按“a”、“b”、“c”键,然后单击命令按钮,在文本框Textl和Text2中显示的内容分别为 A)abc和ABCB)空白C)ABC和abcD)出错 十一、鼠标事件 1.鼠标状态事件 鼠标事件分为点击事件和状态事件。 点击事件又分为单击事件和双击事件,这两个事件不区分左键和右键;状态事件又分为按下事件(MouseDown)、移动事件(MouseMove)和弹起事件(MouseUp),这三个事件能够区分出鼠标的左键、右键和中间键。 (1)按下鼠标事件过程 格式: PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSinglie,YAsSingle) …… EndSub 例1若看到程序有如下事件过程,则可以肯定的是,当程序运行时(09年9月真题) PrivateSubClick_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle) Print"VBProgram" EndSub A)用鼠标左键单击名称为“Command1”的命令按钮,执行此过程 B)用鼠标左键单击名称为“MouseDown”的命令按钮,执行此过程 C)用鼠标右键单击名称为“MouseDown”的命令按钮,执行此过程 D)用鼠标左键或右键单击名称为“Click”的命令按钮,执行此过程 例2设窗体的名称为Form1,标题为Win,则窗体的MouseDown事件过程的过程名是 (10年3月真题) A)Form1_MouseDown B)Win_MouseDown C)Form_MouseDown D)MouseDown_Form1 例3以下说法中正确的是: (11年9月真题) A)MouseUp事件是鼠标向上移动时触发的事件 B)MouseUp事件过程中的x,y参数用于修改鼠标位置 C)在MouseUp事件过程中可以判断用户是否使用了组合键 D)在MouseUp事件过程中不能判断鼠标的位置 (2)松开鼠标事件过程 格式: PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSinglie,YAsSingle) …… EndSub (3)移动鼠标光标事件过程 格式: PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSinglie,YAsSingle) …… EndSub 例4要求当鼠标在图片框P1中移动时,立即在图片框中显示鼠标的位置坐标。 下面能正确实现上述功能的事件过程是: (10年3月真题) 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 例5假定已经在菜单编辑器中建立了窗体的弹出式菜单,其顶级菜单项的名称为a1,其“可见”属性为False。 程序运行后,单击鼠标左键或右键都能弹出菜单的事件过程是: (11年9月真题) A)PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle) IfButton=1AndButton=2Then PopupMenua1 EndIf EndSub B)PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle) PopupMenua1 EndSub C)PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle) IfButton=1Then PopupMenua1 EndIf EndSub D)PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle) IfButton=2Then PopupMenua1 EndIf EndSub 它们适用于窗体和大多数控件,包括复选框、命令按钮、单选按钮、框架、文本框、目录框、文件框、图像框、图片框、标签、列表框等。 这三个鼠标事件过程具有相同的参数。 Button表示被按下的鼠标键,可取3个值;Shift表示Shift,Ctrl和Alt键的状态;X,Y鼠标光标的当前位置。 2.MousePointer属性 MousePointer属性用于设置鼠标经过某对象时光标的形状类型,其值可以是0~15之间的任一整数,不同的值代表不同的形状。 MousePointer属性可以在程序设计时通过属性窗口设置,也可以在程序运行阶段通过代码设置。 (1)在属性窗口中设置 单击属性窗口的MousePointer属性条,然后单击设置框右端向下的箭头,将下拉显示MousePointer的16个属性值。 (2)在代码中设置 格式为: 对象.MousePointer=设置值 (3)自定义鼠标光标 如果把MousePointer属性设置为99,则可以通过Mouselcon属性定义自己的鼠标光标。 有以下两种方法: ①在属性窗口中定义 首先选择所需要的对象,再把MousePointer属性设置为“99–Custom”,然后设置MouseIcon属性,把一个图标文件赋给该属性(与设置Picture属性的方法相同)。 ②用程序代码设置 先把MousePointer属性值设置为99,然后再用LoadPicture函数把一个图标文件赋给Mouselcon属性。 (4)鼠标光标形状的使用 在Windows中,鼠标光标的应用有一些约定俗成的规则。 为了与Windows环境相适应,在应用程序中应遵守三个主要规则: ①表示用户当前可用的功能,如“I”,形鼠标光标(属性值3)表示插入文本;十字形状(属性2)表示画线或圆,或者
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 补充 知识 新版 打印