版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VisualBasic
程序设计
第一章概论
第二章可视化程序设计
主要内容VisualBasic的功能特点VB的集成开发环境VB编程步骤与第一个VB程序主要内容VisualBasic的功能特点VB的集成开发环境程序设计步骤窗体和标准控件第一个编程实例理解VisualBasicVisual(可视化):采用图形用户界面(GUI)的程序设计方法。简单直观。Basic:历史悠久,易学易用,功能强大的计算机程序设计语言。BASIC-Beginner’sAll-purposeSymbolicInstructionCode(初学者通用符号指令代码)GUI-GraphicUserInterface(图形用户界面)VisualBasic编程特点可视化集成开发环境(IDE)面向对象的编程方法(OOP)事件驱动结构化程序设计语言充分利用Windows资源提供动态数据交换技术(DDE)OLE-对象链接与嵌入利用动态链接库(DLL)和应用程序接口(API)调用其他语言编写的代码模块开放的数据库功能和网络支持VB集成开发环境(IDE)窗体设计窗口代码设计窗口属性窗口工程资源管理器布局窗口工具箱立即窗口菜单栏工具栏集成开发环境组成:标题栏和菜单栏工具栏和数字显示区标准工具箱工程资源管理器窗口属性窗口窗体设计器代码窗口布局窗口立即窗口功能:设计可视化界面设计程序设计编辑调试编译运行编程初步上下文相关帮助选择关键字按<F1>键将显示相关帮助主题程序设计步骤分析问题和需求创建用户界面设置对象属性编写代码调试程序,修改错误保存工程创建可执行文件事件驱动Click单击DblClick双击Change内容改变MouseDown按下鼠标键MouseUp放开鼠标键GotFocus得到焦点LostFocus失去焦点KeyPress按键盘键KeyUp放开键盘键keyDown按下键盘键用户触发事件之例:Load装入Unload卸载Activate激活Timer设定时间到事件驱动:程序的执行由发生的事件决定。程序响应所发生的事件,执行相应的事件过程然后等待下一个事件。系统环境事件之例:窗体窗体是应用程序运行时与用户进行交互操作的窗口或对话框。其固有成分有:图标标题栏控制菜单工作区控制按钮属性事件方法窗体属性窗体的属性可以在设计时通过“属性”窗口设置,也可以在运行时由代码来实现。窗体的常用属性是:
BorderStyle——设置窗体边框样式Caption——窗体标题ControlBox——设置窗体“控制菜单”Enabled——对用户事件是否能作出反应
Height(高)、Width(宽)——窗体大小(单位?)Left(左)、Top(顶)——窗体位置窗体属性(续)Icon——窗体图标Moveable——窗体是否能移动BackColor,ForeColor——背景色,前景色(颜色)Picture——窗体中显示的图片文件名AutoRedraw——显示窗体时自动重画窗体图文Visible——窗体是否显示窗体事件
事件一般由用户操作引发。窗体的常用事件有:Load——发生在窗体被装载时。Activate——当一个窗体变成活动窗体时。Deactivate——当改变当前窗体时。QueryUnload
,Unload——当卸载窗体时。Resize——当调整窗体大小或首次显示窗体时Click,DblClick
——单击、双击窗体时窗体的方法方法是对象内置的功能,可供程序直接调用的子程序或函数
窗体上常用的方法有:Show——显示窗体Hide——隐藏窗体,但不能使其卸载Move——用以移动窗体到一定的坐标位置Print——在窗体内打印输出Pset,Line,Circle——画点、画线、画园等Cls——清除窗体内输出的图、文控件控件是建立VisualBasic应用程序的基本元素。能够用于VB的控件数量众多,一般将其分为两个方面:内部固有控件、ActiveX控件。用户可以通过“工具箱”获取各种控件。标准控件中文名类名(Class)标签label文本框Textbox命令按钮CommandButton单选按钮OptionButton复选框CheckBox框架Frame水平滚动条垂直滚动条HScrollBarVScrollBar下拉框(组合框)ComboBox列表框ListBox定时器Timer工具箱内部控件是VB内可直接使用的最常用的控件。例例标准控件(续)中文名类名图片框PictureBox图象Image驱动器列表框DriveListBox目录列表框DirListBox文件列表框FileListBox形状Shape直线Line数据DataOLE容器OLECommandButton(命令按钮)
常用属性:Caption
——在命令按钮上显示的文本在其中可用&<字母>设置快捷键Style
——
设置命令按钮的外观:0-标准;1-图象Cancel
——设置按钮为取消按钮(ESC)常用事件:Click
——单击VisualBasic程序设计
第3章BASIC语言基础主要内容基本数据类型:数值型、字符型、日期型、布尔型、变体型常量与变量及其定义不同数据类型的运算表达式内置函数基本数据类型类型名称,声明符字节数范围整型Integer,%2-32768(-215)~32767长整型Long,&4-231~231-1单精度Single,!4尾数24位,指数8位*双精度Double,#8尾数53位,指数11位*字符型String,$定长用String*n(n-长度)货币型Currency,@8在±263×10-4之间
均指二进制的位,尾数和指数都含1位符号位。尾数在(-1,1)之间。基本数据类型(续)类型声明类型字节数范围布尔型Boolean2True(-1)或False(0)日期型Date8公元100.1.1~9999.12.31字节型Byte10
~255定长字符型String*
n2*
n注:赋值时不足时用空格补,超长时截尾变体型Variant(可省)任何类型数据对象型Object4任何对象引用(指针)常量直接常量数值常量,如:3.12,-5,1.3E-8日期时间常量,如:#10/12/200210:30#字符串常量,如:"I'mfine","99.9"逻辑常量:True,False用符号表示的VB常量,如:
vbCrLf
回车换行chr(13)&chr(10)
vbYesNo =4,在消息框msgbox中显示 Yes和No按钮常量符号常量分VB已定义的符号常量和自定义符号常量。VB常量,如:
vbCrLf
回车换行chr(13)&chr(10)
vbYesNo =4,在消息框msgbox中显示 Yes和No按钮好处:便于记忆,便于程序阅读查阅定义:在对象管理器中自定义符号常量-声明声明常量的好处:便于识别(使用有意义的符号,如PI)便于修改(只需修改定义部分)减少差错:避免输入错误,便于查错例:ConstPI=3.1415926ConstVBasstring_ =“VisualBasic“
PublicConstconMax=99ConstPI2=PI*2ConstT911=#2001-9-11#[Public|Private]Const[as<类型>]<常量名>=<常量表达式>枚举类型-定义符号常量集合语法[Public|Private]Enum
类型名
<成员名>[=常量表达式]<成员名>[=常量表达式]
……EndEnum如果没有常量表达式,则第一个成员等于0,后一个成员等于前一个成员加1。常量表达式为Long类型类型定义后,可以用在变量声明语句中例如:Enum
Season
Spring=1SummerFallWinterEndEnum结果:Season是个符号常量集合,其中包含4个符号常量:Spring=1,Summer=2Fall=3,Winter=4使用:DimjdAsSeason
在对象浏览器中观察自定义的类型变量及其命名规则变量分内存变量和属性变量。属性变量即对象的属性,其名称与类型是确定不变的,例如Caption属性,其变量名是
对象名.Caption,而其类型为String。一般变量即指内存变量,其名称与类型是由程序员定义的。变量名不能以数字开始,不能用VB的保留字变量名只能由字母、数字和下划线组成变量名可以使用中文,但较少见。变量的声明变量的声明语句:Dim|Public|Static<变量名>[as<类型>]
显式声明语句:OptionExplicit
该语句强制变量必须先声明才能使用例:DimxAsDoubleDimiAsInteger,jAsSingle,sAsString
或:Dimi%,j!,s$
注意:如声明Dimx,yAsSingle
则x为Variant型(变体型),y才是Single型表达式常量、变量、函数用运算符连接而成单独一个常量,或变量,或函数都可以看作是一个表达式运算结果称为表达式的值,该值的数据类型即为表达式的类型。运算符数值运算:+-*/(加减乘除)
\(整除),如:10\3=3 mod(求余数),如:12mod5=2^(幂),如:3^4=81(34)比较运算:<<==>=><>连接运算:&(或+)逻辑运算:notandorxor
equimpVB内置函数数值运算算术运算:+-*/(加减乘除)整除:\如11\3,结果为3
求余数:mod如14mod5,结果为4
幂运算:^如3^4即34,结果为81注意:整除(\)和模运算符(mod)两侧遇小数点时,先四舍五入,再运算。如:
10.5\3.5=11\4=2
7.2mod3.5=7mod4=3数值运算的精度数值表达式的运算结果一般为Double或Long类型。但如果含Single类型的变量或常量,则可能降低其运算精度。数值常量也可以使用类型后缀(%,&,!,#),从而改变其参加运算的表达式的运算精度。例如:
?1/3 输出.333333333333333
?1/3! 输出.3333333其中3!表示单精度常数3,不是3的阶乘!日期型数据的运算日期型数据可以加减天数(可含小数),结果仍为日期型。例如:#2005-9-25#-10两个日期型数据之差为两个日期之间相隔的天数。例如:#2005-9-25#-#1986-5-20#日期型数据可以看作一个数值型数据,即该日期与#1899-12-3000:00#之间相差的天数,其中的整数部分为日期,小数部分为时间。该数值称为日期的“系列数”。
例如,用单精度数显示#1900-1-16:00#:
?Csng(#1900-1-16:00#)输出:2.25比较运算运算:<<==>=><>比较结果为True或False双字符运算符(<=、>=和<>)两字符之间不能有空格,也不能写成=<、=>、><字符型数据按其内码(Unicode)大小比较
Unicode:2字节无符号整数,国际通用码。ASCII码表中的符号,码值不变,位长16。注意:对浮点(单精度、双精度)数不要进行=(等于)比较,如
?1/3显示.333333333333333
?1/3=.333333333333333显示False字符串的连接运算字符串的连接运算:
&
(推荐使用) 或:
+(尽量不用)例如:“安徽“
&“合肥“=“安徽合肥“在文本框Text1和Text2中分别输入
3和4,则表达式
Text1.Text+Text2.Text的值为“34”而不是7。这是因为Text属性的类型是字符型,而不是数值型。逻辑运算ABNotAAAnd
B
A
OrBA
Xor
BA
Equ
BAImp
BFFTFFFTTFTTFTTFTTFFFTTFFTTFTTFTT注:1.A、B均为逻辑表达式。如果是数值,则其值非零时看作True,值为零时看作False。例如:表达式4>3And5>4
的值为True
2.F-False,T-True按位运算ABnotAAandB
AorBA
xor
B001000011011100011110110例:A1010notA0101AorB1110B1100AandB1000AxorB0110运算的优先级算术运算^→-(负)→*
/→\→mod→+-(加减)连接运算&比较运算<<==>>=均同级逻辑运算not→and→or→
xor→equ→imp例表达式值表达式值5+3^220\72*3=6and5>2*2#8/1/2008#+7“6=“&“1+2+3“Len(“Let’sgo!”)8=5ornot3>2“abc”>”ABC”Int(7.65432)8mod314True6=1+2+3False722008-8-89True2VB内置函数VB内置函数是可以直接使用的函数内置函数是调用内部子程序后返回的结果,称为函数的值。此值的类型称为函数的类型。不同的函数有不同的参数,要注意每种函数所带参数的个数和类型。函数可以直接放在表达式中,为数据处理带来很大方便。数学函数三角函数:用弧度Cos(x),Sin(x),Tan(x),Atn(x)单位:弧度
sin2
35°表示为sin(35*3.1416/180)^2
对数:Log(x),指数:Exp(x)(以e为底)
平方根:Sqr(x)
绝对值:Abs(x) |x-y|表示为:abs(x-y)
取整:Int(x) 取≤x的最大整数
Fix(x) 取x的整数部分
符号函数
Sgn:Sgn(x)=VB内置函数{-1当x<00当x=01当x>0数学函数的应用实例∵Tan(π/4)=1
∴π=4*Atn(1)=3.14159265358979
可用于定义常量:
ConstPI=4*Atn(1)e=exp(1)=2.71828182845905π=4*Atn(1)e=Exp(1)随机函数(伪)随机函数Rnd
:产生0~1之间的1个随机数,0<Rnd<1
随机函数在测试、模拟、游戏等程序中有广泛应用。例如,要产生一个1~6之间的随机整数,可以用表达式:
Int(Rnd*6)+1Randomize语句:产生随机数的种子,从而改变随机数序列。VB内置函数
日期时间函数不带参数:日期函数Date和Date$取系统日期时间函数Time和Time$取系统时间日期和时间函数Now取系统日期和时间当天已过时间总秒数Timer带参数(日期型表达式):Year,Month,Day分出年月日Weekday算出星期几Hour,Minute,Second分出时分秒VB内置函数字符串函数(1)取子字符串:Left
函数:取左边n个字符,如
Left(“Basic”,3)=“Bas”Right
函数:取右边n个字符,如
Right(“Basic”,2)=“ic”Mid函数:取中间n个字符,如
:
Mid(“Basic”,2,3)=“asi”,Mid(“Basic”,2)=“asic”取长度(字符数)函数Len,如 Len(“Go!”)=3VB内置函数字符串函数(2)求子串位置InStr
,如
InStr(“Welcome”,”come”)=4转换函数:求值Val,取前面可作数值的字串转换,如 val(“1.23mm”)=1.23
而val(“1.23e2abc”)=1.23e2=123数值转字符Str:Str(12.3)=“12.3”代码→字符Chr
:例如Chr$(65)=“A”字符→代码Asc:例如Asc(“A”)=65注:中文VB使用双字节的Unicode码VB内置函数字符串函数(3)空格函数Space(n),返回n个空格字符重复函数String(n,c),返回n个字串c的第一个字符大小写转换函数:
Lcase(s)转换为小写
Ucase(s)转换为大写 VB内置函数转换函数和判断函数转换函数Cint,CLng,CSng,CStr,…
注意其命名法:C+<类型缩写>判断函数IsNumeric(表达式)判是否数值,布尔型IsEmpty(变量)判是否空值,布尔型IIf(条件,值1,值2)Typename(表达式)返回表达式的类型名IsDate(表达式)判是否日期,布尔型VB内置函数格式转换函数函数格式:
Format(<表达式>,<格式字串>)功能:将表达式的值按指定格式进行转换。例:Format(1.2,”00.000”)=”01.200”Format(Date,”yy.m.d”)=”05.3.8”VB内置函数语句的书写格式一般情况下,每行一条语句一行多条语句之间用冒号(:)作分隔符,如
a=1:b=2:c=3长语句分多行书写是,可在换行前加续行符(下划线_),例如:MsgBox
“SumOf1,2,3,…,100is“_&vbcrlf&x,vbInformation注释部分以单引号(‘)开头,止换行VisualBasic程序设计
第四章
程序的输入和输出万博科技职业学院主要内容利用控件输入、输出文本框的Text属性,I/O标签的Caption属性,Output对话框输入对话框函数InputBox消息对话框函数MsgBoxPrint方法输入对话框InputBox(Prompt,Title,Default,Xpos,Ypos)Prompt 提示字符串Title 对话框标题Default 缺省输入值Xpos,Ypos
对话框位置(左上角座标)返回用户输入(String类型)例:a=InputBox("n=","输入","1")消息对话框MsgBox(Prompt,Buttons,Title)Prompt 提示字符串Buttons 按钮及图标Title 对话框标题返回用户所单击的按钮对应值按钮图标消息对话框中的按钮常量名称数值按钮vbOKOnly0确定vbOKCancel1确定,取消vbAbortRetryIgnore2终止,重试,忽略vbYesNoCancel3是,否,取消vbYesNo4是,否vbRetryCancel5重试,取消消息对话框中的图标常量名称数值图标vbCritical16vbQuestion32vbExclamation48vbInformation64MsgBox函数的返回值常量名称数值用户点击的按钮vbOK1确定vbCancel2取消vbAbort3终止vbRetry4重试vbIgnore5忽略vbYes6是vbNo7否Print方法格式:[对象名.]Print[<表达式表>][;|,|空格]分号(;)表示后面内容将接着输出逗号(,)表示后面内容将跳至下个制表站输出
制表站位置:n*14+1回车表示后面内容将从下一行开始输出可以用问号(?)代替Print以简化输入例PrivateSubCommand1_Click()Print"135791357913579"Print"ax","but","color"Picture1.Print"135791357913579"Picture1.Print"more","no","yes"EndSub制表站的位置:1,15,29,…(14n+1)具有Print方法的对象窗体(Form)图片框(PictureBox)立即窗口(Debug)打印机(Printer)说明:引用所在窗体时,对象名可以省略,也可以用Me代表在Print方法中常用的函数Tab(n) 跳至第n列,输出后面内容
Spc(n) 插入n个空格例:PrintTab(10);"学号";Tab(20);"姓名";Tab(30);"性别"Print"学号";Spc(4);"姓名";Spc(6);"性别"与Print有关的属性AutoRedraw(自动重画)属性为False(初值)时,用Print方法和绘图方法输出的内容被其他窗体遮挡后会被抹去。为此,应将该属性设置为True改变CurrentX和CurrentY属性(当前输出位置)可以改变下个输出的位置
例如:
CurrentX=Width/2:CurrentY=Height/2Print0‘在窗体中心位置输出0输出字体与颜色属性意义类型FontName字体名StringFontSize大小SingleFontBold粗体BooleanFontItalic斜体BooleanFontUnderline下划线BooleanForeColor前景色Long与Print有关的方法可用Cls方法清除用Print方法和绘图方法输出的内容,格式:
[对象名.]Cls
清除后,当前座标回到对象的左上角文本框的主要属性Text
显示的文本,缺省属性MultiLine
为True时允许多行显示ScrollBar
滚动条,只有在MultiLine属性为True时才有意义PassWordChar
口令字符。代替显示用户输入的字符。只当MultiLine属性为False时才起作用。Locked
禁止用户输入,使文本框只能输出关于焦点(Focus)事件:GotFocus和LostFocus
获得焦点和失去焦点。任何时刻只能有一个控件获得焦点。方法:SetFocus属性:TabIndex
Tab键序
TabStop
允许/禁止获得焦点
没有TabStop属性的控件当然不会获得焦点。滚动条-Hscrollbar和Vscrollbar主要属性Max 最大值Min 最小值Value 当前值LargeChange
大增量SmallChange
小增量事件Change 值改变时Scroll 滚动时Min=0滚动块 Max=100Value=例VisualBasic
程序设计
第5章
选择结构设计
万博科技职业学院主要内容选择结构的概念条件表达式,比较运算和布尔运算条件语句If…多分支选择语句SelectCase…标准控件单选按钮OptionButton复选框CheckBox定时器Timer选择结构的概念用于分析、比较、判断。对不同情况要进行不同的处理。条件表达式由比较运算、布尔运算完成,表达式的值为True或False例:
1.x>=0andx<=1(0≤x≤1)
2.x>yandy>0 (x>y>o)
3.Notx>0orx>5比较运算比较运算:<<==>=><>数值之间比较,例x!>0等
注意:对浮点(单精度、双精度)数不要进行=(等于)比较,如
x!=3.45-不可靠字符串(可以包含汉字及其他文字、符号)之间比较按内码大小,从第1个字符开始。逻辑运算ABNotAAAnd
B
A
OrBA
Xor
BA
Equ
BAImp
BFFTFFFTTFTTFTTFTTFFFTTFFTTFTTFTT注:1.A、B均为逻辑表达式。如果是数值,则其值非零时看作True,值为零时看作False。例如:表达式4>3And5>4
的值为True
2.F-False,T-True单行If语句格式:
If条件
Then语句1[Else
语句2]例:1.Ifa<0Thena=-a2.Ifx>=0Theny=sqr(x)Elsey=-x多行If语句格式:If<条件1>Then[语句块1][ElseIf<条件2>
语句块2]…
[Else
语句块3]EndIf条件1EndIf后下个语句语句块1TrueFalse条件2语句块3False语句块2True多行If语句格式:If<条件>Then[语句块][ElseIf<条件>
语句块]…
[Else
语句块]EndIf例:
d=InputBox(“请输入你的出生日期”)
If
Isdate(d)Then
Msgbox“你出世已有”_&Date-cdate(d)&“天”
Else
Msgbox“输入错误!”
EndIfSelectCase语句格式:SelectCase<测试表达式>[Case<取值范围表达式表><语句块>]…[CaseElse<语句块>]EndSelect用途:多分支选择SelectCase语句流程图SelectCase<表达式>Case①Case②NoCase③NoEndSelect的下个语句语句块4No(CaseElse)①②③为表达式取值范围,可为:常量或常量列表,如10,20
值1To
值2 如30To50
Is<比较符>常量,如Is>50语句块1Yes语句块2Yes语句块3Yes例1:按得分定等级SelectCasecjCase100‘如果成绩cj=100
lev=“满分”
Caseis>=90‘如果cj>=90
lev=“优秀”
Case75to89‘如果cj
在75与89之间
lev=“良好”
Case60to74 ‘如果cj
在60与74之间
lev=“及格”
CaseElse ‘其他情况
lev=“不及格”EndSelect例2:判断输入字符类型程序功能:在文本框中输入一串字符,在输入同时判别输入字符的类型,并显示在一个标签中。同时统计不同类别字符的个数。类别分:大写字母、小写字母、数字、韵母(a,e,i,o,u)、汉字、其他。例输入字符类别判断
SelectCasec
Case"A","E","I","O","U"t="大写韵母"
Case"A"To"Z"t="大写字母"
Case"a","e","i","o","u"t="小写韵母"
Case"a"To"z"t="小写字母"
Case"0"To"9"t="数字"CaseIs>"~"t="汉字"Case
Else
tp="其他字符"EndSelectText1.Text=t例3:信号灯运行PrivateSubTimer1_Timer()a=(a+1)Mod6SelectCaseaCase0,1,2P1.Picture=Image1.Picture'redCase3P1.Picture=Image2.Picture'yellowCaseIs>3P1.Picture=Image3.Picture'greenEndSelectEndSubFrame(框架)Frame(框架)是一个容器。用于把其他的控件组织在一起。当框架移动、隐藏时,其包容的控件也都跟着移动、隐藏。框架的常用属性有:Caption
-
设置框架标题,使用户了解框架的用途。Enabled-设置框架是否有效。Visible
-设置框架是否可见。OptionButton(单选按钮)用于从多个可选项中选择其中之一。主要属性:Caption
标题Value
值,布尔量。True-选中,False-不选Style
外观:Standerd-标准方式,圆形Graphical-图形方式,象按钮多个选项应在同一个容器中:窗体(Form)框架(Frame)图片框(PictureBox)CheckBox(复选框)主要属性:Caption:标题,用于说明。Value:值,可取:0-UnChecked,不选1-Checked,全选2-Grayed,部分选中单击复选框时,不会选2纠错:P.100,第7行复选框之间无制约。实例Timer(定时器)关键属性:Enabled:True:定时器处于工作状态。False:处于待命状态。Interval:
时间间隔周期(毫秒数)。
如果Interval=0,也不会发生Timer事件。Timer事件:定时时间到。重新计时。应用于:计时、动画等例颜色及有关常量及函数颜色值用长整型数表示,如: 蓝色:&H00FF0000&
绿色:&H0000FF00&
红色:&H000000FF&内置颜色函数:RGB(red,green,blue)
red,green,blue:0~255QBColor(n)n=0,1,2,…,15颜色常量:vbRed,vbBlue,vbBlack等例VisualBasic
第六章循环程序结构
For...Next
语句
Do…Loop
循环语句
列表框组合框主要内容万博科技职业学院For…Next循环语句格式:For<计数器>=<初值>to<终值>[step<步长>]<语句块>Next<计数器>注:<计数器>必须是数值型变量步长可正可负,也可以带小数,缺省值为1当计数器达到或超过终值时,终止循环。可用ExitFor语句强行中止循环例For…Next循环的流程图计数超过终值?计数器加上步长(Next语句)语句块(循环体)NoYesNext的下条语句如果在循环体中遇到ExitFor
语句,则强行中止循环计数器=<初值>保存终值和步长(For语句)For<计数器>=<初值>to<终值>[step<步长>]<语句块>Next<计数器>例1:求100以内所有奇数之和S=0 ‘S用于保存累计值,初值为0ForK=1to100step2‘K-计数器,步长2S=S+K ‘K=1,3,5,…,99NextK‘K+2(步长),再执行循环语句 ‘直到K>=100(终值)Print“100以内所有奇数之和为“;S‘输出结果计算:S=1+3+5+7+……+99例2:输出图案(P110,例6-7)Fori=1To5‘对1~5行
PrintTab(5+i);‘跳到第5+i列
PrintString(6-i,“★”);‘打印6-I个★
‘输出6个空格,i个▲
PrintSpc(6);String(i,“▲”);‘再输出6个空格,6-i个☆
PrintSpc(6);String(6-i,"☆")Nexti注意Tab、Spc和String函数的用法例3:二重循环实例:九九乘法表Form=1To9
Forecolor=vbRedprintm;
Forecolor=vbBlueForn=1TomPrintTab(n*4);m*n;NextnPrint'换行NextmForEach...Next循环
ForEach...Next循环是以对象集合中的每一个元素作为重复依据的,如果不知道一个集合有多少元素,ForEach...Next循环非常有用。语法格式:
ForEach<元素>In<集合>
语句块
Next<元素>
例:移动窗体中所有控件(Controls)PrivateSubform_Click()Dimob1AsObjectForEachob1InControlsob1.Left=ob1.Left+20Nextob1EndSubDo…Loop语句DoWhile<条件><语句块>LoopDo<语句块>LoopWhile<条件>DoUntil<条件><语句块>LoopDo<语句块>LoopUntil<条件>Until<条件>
相当于Whilenot<条件>
可用ExitDo
中止循环前测型后测型前测型与后测型的比较条件语句块Loop的下条语句前测型
DoWhile<条件><语句块>Loop后测型
Do <语句块>LoopWhile<条件>条件语句块Loop的下条语句YesYesNoNo先测试至少执行一次例:国王的奖励
国王要奖励棋王,棋王要求在棋盘第1格放1粒麦子,第2格加倍,第3格再加倍,直到放到第64格。国王想一想就同意了。国王粮仓里有10万吨麦子,1粒麦子只有0.1克,请问国王的麦子可以奖励棋王到棋盘的第几格?例:国王的奖励(程序)PrivateSubCommand1_Click()DimqAsSingle,kAsIntegerq=0.0001:k=1:s=q’初值q=0.1g,k=1(第1格)DoWhiles<1E8’10万吨
k=k+1:q=q*2:s=s+qLoopPrint"第"&k&"格"EndSubListBox(列表框)及其主要属性
用于显示项目列表。用户可以从列表框中的一系列选项中选择一个或多个选项。主要属性:List(i):
设置列表框中包含的项(数组)ListIndex:
当前所选列表项的下标ListCount:
列表项的总数Text:当前项文本内容MultiSelect:设置是否能够做多个选择Selected(i):数组,选中的项(Boolean)Sorted:设置是否按字母顺序排列各项例ListBox(列表框)的主要方法AddItem
项目[,位置]
添加项目。
例如:List1.AddItem“王平”,0RemoveItem
位置删除项目例如:List1.RemoveItem0(删除第一项)Clear
删除所有项目
例如:List1.Clear例ComboBox(组合框)及其主要属性文本框与列表框的组合,其主要属性与列表框相同
List(i):
设置组合框中包含的项(数组)ListIndex:
当前所选列表项的下标ListCount:
列表项的总数Text:当前项文本内容Sorted:设置是否按字母顺序排列各项Style:
显示方式ComboBox
的Style属性0-DropDownCombo
下拉组合框1-SimpleCombo
简单组合框2-DropDownList
下拉列表框组合框-ComboBox的方法AddItem
添加项目。例如:Combo1.AddItem“王平”,0RemoveItem
删除项目例如:Combo1.RemoveItem
Combo.ListIndex
(删除当前项)Clear
删除所有项目例如:Combo1.Clear
VisualBasic程序设计
第七章数组万博科技职业学院数组一组变量,名字相同,数据类型相同,用下标(索引-Index)来区分。例如:
a(0),a(1),…,a(n)称为数组a的成员(元素、下标变量)两种类型的数组:静态数组:成员数量不变.动态数组:成员数量可变。静态数组
定义(声明):
Dim|Private|Public|Static
_
数组名([下界To]上界)[As数据类型]
缺省的下界为0(或1,如有OptionBase1)除Variant型外,数组内所有元素有相同类型。例:Dima(4)AsInteger‘含5个元素a(0),…,a(4)Dims(10To20)AsString‘含11个元素Dimb(3,2)‘2维数组,变体型,4×3个元素多维数组Dima%(3,4)‘定义了1个二维数组A(0,0)A(0,1)A(0,2)A(0,3)A(0,4)A(1,0)A(1,1)A(1,2)A(1,3)A(1,4)A(2,0)A(2,1)A(2,2)A(2,3)A(2,4)A(3,0)A(3,1)A(3,2)A(3,3)A(3,4)数组的使用数组元素与一般变量一样使用。注意:声明后初值为0(数值型)或空(字符型)声明数组和引用数组元素时,都用圆括号括住下标。下标值不能超过定义范围数组与简单变量在同一范围内不能同名。赋值每个数组元素都是一个变量,一般应逐个赋值。例如:
Fori=0toubound(a)
a(i)=i
Nexti使用Array函数。例如:
Dimaasvariant‘a是一个变体型变量
a=Array(1,3,6)‘结果a成为数组,且:a(0)=1,a(1)=3,a(2)=6与数组有关函数Lbound(a)数组a的下界Ubound(a)数组a的上界Array(a1,a2,…)创建一个数组各元素初值为a1,a2,..Split(A[,c])A-String,c-Character使用InputBox()函数输入逐个输入:
Fori=0to5
a(i)=inputbox(“a(“&i&“)=“)
NextI一次输入:
DimaasVariant,sasStrings=inputbox(“输入数据,用逗号隔开”)
a=split(s,”,”)forI=0toubound(a)printa(I)nexti动态数组(1)
创建动态数组的步骤:声明动态数组,给数组附以一个空维数表,例如:
DimDynA()asinteger用ReDim
语句在程序执行过程中给数组指定维数和分配实际的元素个数,例如:
ReDim[Preserve]DynA(4to12)Preserve保留数组内容。此时只能改变最后一维上界。
动态数组(2)
值得注意的是:ReDim
语句与Dim语句不同,ReDim
语句是一个可执行语句,通过在应用程序中执行ReDim
语句,给维数和元素个数待定的数组指定维数和元素个数。在程序中还可以使用变量设置动态数组的边界。例如:
ReDim
DynA(X,Y)控件数组一组控件,名字相同,类相同,用下标(索引-Index)来区分。例如:
Command1(0),Command1(1),…,Command1(n)FontForEach...Next循环
ForEach...Next循环是以对象集合中的每一个元素作为重复依据的,如果不知道一个集合有多少元素,ForEach...Next循环非常有用。语法格式:
ForEach<元素>In<集合>
语句块
Next<元素>
例:移动窗体中所有控件(Controls)PrivateSubform_Click()Dimob1AsObjectForEachob1InControlsob1.Left=ob1.Left+20Nextob1EndSub数据排序(Sort)冒泡排序(BubleSort)选择排序(SelectionSort)插入排序(InsertionSort)数据查找顺序查找折半查找VisualBasic程序设计
第八章过程
-子程序和函数主要内容子程序(Sub过程)函数(Function过程)参数传递过程的嵌套调用和递归调用鼠标和键盘事件自定义子程序[Public|Private|Static]Sub<子程序名>([参数及其类型列表])
<程序代码>EndSub例如:交换两个变量内容的子程序:PublicSubSwap(x,y)dimt
t=x:x=y:y=tEndSub自定义函数[Public|Private|Static]Function<函数名>([参数及其类型列表])[As<类型>]
<程序代码>(内含:<函数名>=<返回值表达式>)EndFunction注意:函数与子程序的区别(1)函数必须有返回值,子程序没有。(2)如果不指明函数的类型(即其返回值的类型),则其类型是变体型(Variant型)(3)函数用在表达式中,子程序不能。子程序的调用格式:
Call<子程序名>(参数列表)或者
<子程序名>参数列表子程序和函数的参数形参-形式参数,定义部分所使用的参数。实参-实在(实际)参数,调用时传递给子程序或函数的参数。例如:下面的x和y是形参,a和b是实参。定义子程序Swap:SubSwap(x,y)Dimtt=x:x=y:y=xEndSub调用子程序Swap:
…..Swapa,b'交换
…..参数的传递方式在子程序或函数的调用过程中,实参内容传递给相应的形参可以有两种方式:传址和传值传址(ByRef):将实参地址传给形参。传值(ByVal):将实参的值传给形参。区别:传址时,形参与实参是同一个内存区域,因而实参随形参的改变而改变。传值时,形参被单独分配内存并获得实参的值,因而形参的改变并不改变实参的值。传值和传址的区别形参x←
实参a:形参y
←
实参b:54321定义子程序Swap:SubSwap(x,y)Dimtt=x:x=y:y=xEndSub调用子程序Swap:
…..Swapa,b'交换
…..Swap传址
↕x:←a:y:
←b:54321↕
Swap传值54321实例:‘求直角三角形的斜边PrivateSubRoot(ByVala,ByValb,c)c=Sqr(a^2+b^2)EndSub‘调用:
……Root3,4,zPrintz ‘打印结果
5
cba自定义函数的实例‘用函数求直角三角形的斜边PublicFunctionHyp(x
!,y!)AsSingle
Hyp=Sqr(x^2+y^2)EndFunction‘调用:
……PrintHyp(3,4)‘打印结果
5变量与过程的作用域在声明变量和过程时:在什么地方声明?过程内部过程外部(模块的通用段)用什么关键字?DimStaticPrivatePublic变量的作用域过程级模块级全局变量过程的作用域模块级全局级Static:作用?变量声明格式:Dim|Public|Private|Static<变量名>[as<类型>]有效范围:过程→模块→全局(公用)隐式声明和显式声明:OptionExplicit组合声明:例:dimiasinteger,jassingle,sasstring或:dimi%,j!,s$VB应用程序的组成VB应用程序.vbp窗体模块.frm标准模块.bas类模块.cls函数过程(Function)事件过程子程序(Sub)函数过程(Function)子程序(Sub)变量的作用域过程级:在过程内部声明,使用Dim或Static关键字。只能在过程内部使用。模块级:在模块的通用段声明,使用Dim或Private关键字。可以在该模块的所有过程中使用。全局:在模块的通用段声明,使用Public关键字。可以在整个应用程序中使用。如果是在窗体模块内声明,则引用时需要在变量名前面加窗体名。例如:Form1.a变量的生存期动态变量:声明时产生(分配内存),过程结束立即释放。用Dim声明。静态变量:过程结束后不释放内存,其值保留。下次访问该过程时仍有效。用Static声明。变量的作用域作用域:过程级模块级全局变量窗体标准模块声明方式DimStaticDimPrivatePublic声明在:过程内模块的通用声明段本模块其他过程:不能用能用其他模块:不能用能用,但要加窗体名.能用过程的作用域模块级:用Private关键字声明全局级:用Public关键字声明在标准模块内声明:可以直接调用在窗体模块内声明:需要在过程名前面指定对象(窗体)名。静态(Static):该过程内所有过程级变量均为静态变量。鼠标事件Click 单击DblClick
双击MouseDown
按下MouseUp
放开MouseMove
移动DragDrop
拖放DragOver
拖过有关问题
同时发生时的先后次序 事件过程中的参数Button
区分左右键Shift
键盘配合X,Y
指针位置
有关属性 有关方法例MouseDown和MouseUp事件Button参数,由按下的鼠标键决定:
1-左键,2-右键,4-中键Shift参数,由先按下的键盘键决定:
1-<Shift>键
2-<Ctrl>键
4-<Alt>键 先按下多键时,数值相加与鼠标有关的属性MousePointer
指针形状MouseIcon
自定义指针形状
当MousePointer=99时的指针形状DragMode0-手工,1-自动自动:可以拖动,此时Click事件和
MouseDown事件失效手工:需编程(用Drag方法)才能拖动DragDrop事件发生在目标对象,而不是被拖动对象上参数:SourceAsControl,XAsSingle,YAsSingle
Source
被拖动对象
X,Y
放下时的X,Y坐标有关属性
DragMode:0-手工,1-自动
DragIcon:拖动时的图标Drag方法:Drag[Action]Action:0-取消,1-开始(缺省),2结束例DragOver事件在拖动越过一对象时发生参数:
SourceAsControl,XAsSingle,YAsSingle Source
被拖动对象
X,Y
放下时的X,Y坐标
State 0-进入时,1-退出时,2-在其中例VisualBasic程序设计
第9章:对话框
主要内容公共对话框自制对话框万博科技职业学院公共对话框不是标准控件。而是可插入部件:
MicrosoftCommonDialogControl6.0和标准控件一样,有属性、方法多功能(由Action属性决定):打开文件对话框另存为对话框颜色对话框字体对话框打印对话框帮助对话框打开公共对话框的方法ShowOpen
显示打开文件对话框ShowSave
显示另存为对话框ShowColor
显示颜色对话框ShowFont
显示字体对话框ShowPrinter
显示打印对话框ShowHelp
显示帮助对话框 例“打开/另存为”对话框的主要属性FileName
用户所选文件路径Filter 过滤器-限制文件选择范围格式:“描述|通配符;…”例:“所有文件|*.*|图片文件|*.bmp;*.jpg”FilterIndex
用户选择的过滤项索引号“字体”对话框的主要属性FontName
字体(String)FontSize
大小 (Single)FontBold
粗体 (Boolean)FontItalic
斜体 (Boolean)FontUnderline
下划线 (Boolean)Color 颜色 (Long)“颜色”对话框的主要属性Color 用户所选的颜色值自定义对话框对话框是窗体的一种,可以用Show方法显示,用Hide方法隐藏。Show方法:窗体名.Show[0|1]
模式:0(默认)-无模式,打开后继续执行其后继语句(如Find)1-有模式:关闭后才能继续(如Open)例Shell函数功能:用于启动其他应用程序。
注:Shell-外壳,操作系统中指命令解释程序,如DOS的command,UNIX的csh,ksh等。格式:Shell(<命令行>,<启动状态>)命令行:任何可在Windows下可执行的命令,如“c:\windows\calc.exe”启动状态:有/无焦点;最大化/最小化/正常windowstyle0-
vbHide
窗口被隐藏,且焦点会移到隐式窗口。1-vbNormalFocus
窗口具有焦点,且会还原到它原来的大小和位置。2-vbMinimizedFocus
窗口会以一个具有焦点的图标来显示。3-vbMaximizedFocus
窗口是一个具有焦点的最大化窗口。4-vbNormalNoFocus
窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。6-vbMinimizedNoFocus窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。VisualBasic
第10章菜单和工具栏万博科技职业学院主要内容菜单制作下拉式菜单弹出式菜单-快捷菜单代码设计工具栏制作加入部件(工具栏,图像列表等)组成:图像加入到工具栏代码设计菜单和工具栏的应用实例工具栏图像列表菜单编辑器菜单项的属性:CaptionNameIndexCheckedEnabledVisible上移一层下移一层上一项下一项菜单项显示区例菜单编辑器功能:适用于下拉式菜单和快捷菜单菜单的树形结构(最多6层)菜单项的增减、插入、移动菜单项的属性设置菜单项数组窗体工作区缩小(ScaleHeight
或ScaleWidth相应缩小)菜单项的属性把菜单项看作一种类似命令按钮的控件
主要属性名称:必须输入,不能重名,除非是数组元素(Index属性非空)标题(Caption)Index索引(下标)属性,一般不填Visible(可见),Enabled(可用)对应的快捷键-主项与子项的设置方法不同特殊菜单项:菜单中的分隔条-标题为“-”菜单的代码设计唯一的事件:Click(除分隔条)菜单项的隐藏和再现(修改Visible属性)菜单数组情况下,含参数Index菜单项的动态增减:只能对菜单数组元素使用Load和Unload方法快捷菜单怎样弹出快捷菜单在被右击的对象的MouseDown事件过程中编程使用PopupMenu语句(方法),格式:
PopupMenu
菜单名,标志,
x,
y,粗体子菜单名说明:只有菜单名是必须的。并已在菜单编辑器中定义。指定的菜单必须含有至少一个子菜单。与下拉式菜单编程相同,正常共享代码。工具栏插入部件:MicrosoftWindowsCommomControls6.0在窗体中加入工具栏(ToolBar)主要属性:Align,决定工具栏的位置加入图像列表控件(ImageList),用于保存工具栏中所需的图像。工具栏的按钮属性页主要属性:IndexCaptionKeyStyleToolTipTextImage按钮的样式0-tbrDefault 缺省1-tbrCheck 复选按钮2-ButtonGroup 单选按钮3-tbrSeparator 分隔符4-tbrPlaceholder 占位按钮5-tbrDropDown 下拉式按钮图像列表控件ImageList用于保存多个图片(在ListImages属性中),供
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《如何修炼领导思维》课件
- 小学健康教育保护视力
- 安全护卫招标文件
- 三年级培智数学练习试题
- 崔建福策划的消防招标文件
- 茶叶批发合同模板
- 外研版三年级上英语日常会话
- 大专班语文试题库
- 犊牛腹泻与三阶段饲养法
- 心衰合并肺栓塞的护理查房
- 三年级语文上册第八单元集体备课+教材解读+解学设计课件
- 部编版二年级语文(上册)课内阅读专项训练题(含答案)
- IEC60335-1-2020中文版-家用和类似用途电器的安全第1部分:通用要求(中文翻译稿)
- 妇幼健康状况分析报告
- 有机物脱水反应的规律及类型
- 骨科患者的护理评估课件
- 六年级上册数学课件-7.1 百分数的认识 ︳青岛版 (共17张PPT)
- 云教版七年级上册劳技第一章第二节衣服的洗涤与熨烫课件
- 足球竞赛规则裁判法(共56张PPT)
- 监理平行检查记录表格模板
- 水利工程管理单位定岗标准(试点)
评论
0/150
提交评论