VB课件结构化程序设计

上传人:cl****1 文档编号:568848511 上传时间:2024-07-27 格式:PPT 页数:87 大小:874KB
返回 下载 相关 举报
VB课件结构化程序设计_第1页
第1页 / 共87页
VB课件结构化程序设计_第2页
第2页 / 共87页
VB课件结构化程序设计_第3页
第3页 / 共87页
VB课件结构化程序设计_第4页
第4页 / 共87页
VB课件结构化程序设计_第5页
第5页 / 共87页
点击查看更多>>
资源描述

《VB课件结构化程序设计》由会员分享,可在线阅读,更多相关《VB课件结构化程序设计(87页珍藏版)》请在金锄头文库上搜索。

1、3.1 顺序顺序结构程序设计结构程序设计3.2 选择选择结构程序设计结构程序设计3.3 循环循环结构结构设计结构结构设计第第3 3章章 结构化程序设计结构化程序设计1. Print方法方法Print方法的语法格式为:方法的语法格式为:object.Print Spc(n) | Tab(n) expression charpos其中:其中:object:窗体、图片框、打印机等对象。:窗体、图片框、打印机等对象。Expression:要打印的数值表达式或字符串表达式。:要打印的数值表达式或字符串表达式。Charpos:逗号逗号或或分号分号,指定下个字符的插入点。,指定下个字符的插入点。3.1 顺序

2、顺序结构程序设计结构程序设计3.1.1 数据输出数据输出2. 与与Print方法有关的函数方法有关的函数与与Print相配合的函数:相配合的函数: (1)Tab函数函数与与 Print # 语句或语句或 Print 方法一起使用,对输出进行定位。格方法一起使用,对输出进行定位。格式:式:Tab(n)当在一个当在一个 Print方法中有多个方法中有多个Tab函数时,每个函数时,每个Tab函数对应一函数对应一个输出项,各输入项之间用分号隔开。个输出项,各输入项之间用分号隔开。例例Private Sub Form_Click() Print 12345678901234567890 Print Ta

3、b(5); 5; Tab(10 - 2); 8, _ 注意这里注意这里10-2当前位置当前位置5,故同行显示,故同行显示 Print Tab(5); 5; Tab(10 - 6); 4; Tab(20 - 15); 5; _ 注意这里注意这里10-6当前位当前位 置置4,故同行显示,故同行显示End Sub(2)Spc函数函数格式:格式:Spc(n)在显示或打印列表中的下一个表达式之前插入在显示或打印列表中的下一个表达式之前插入n个空白数,个空白数,n为为032767之间的整数。之间的整数。Spc函数与输出项之间用分号隔开。函数与输出项之间用分号隔开。 如果如果 n 小于输出行的宽度,则下一个

4、打印位置将紧接在数个已打小于输出行的宽度,则下一个打印位置将紧接在数个已打印的空白之后。如果印的空白之后。如果 n 大于输出行的宽度,则大于输出行的宽度,则 Spc 利用下列公式利用下列公式计算下一个打印位置:计算下一个打印位置:当前位置当前位置+ (n Mod 行宽行宽)Spc函数与函数与Tab函数的作用类似,可以互相代替。但应注意,函数的作用类似,可以互相代替。但应注意,Tab函数从对象的左端开始记数,而函数从对象的左端开始记数,而Spc函数只表示两个输出项之间函数只表示两个输出项之间的间隔。的间隔。3. 使用位置属性使用位置属性位置属性位置属性CurrentX和和CurrentY常用来把

5、文本精确地输出到常用来把文本精确地输出到窗体、图片框或打印页上。这两个属性分别表示当前输出位窗体、图片框或打印页上。这两个属性分别表示当前输出位置的横坐标与纵坐标。置的横坐标与纵坐标。 格式:格式: 对象名称对象名称.CurrentX =x对象名称对象名称.CurrentY =y例:下面程序将图片框相对于窗体居中显示,图片框中的文字居例:下面程序将图片框相对于窗体居中显示,图片框中的文字居中显示。中显示。Private Sub Form_Click()Dim str1 As String str1 = 图片框相对窗体、文字相对图片框居中显示图片框相对窗体、文字相对图片框居中显示 Picture

6、1.FontName = 宋体宋体 图片框中文字的字体图片框中文字的字体 Picture1.FontSize = 16 图片框中文字的字号图片框中文字的字号 Picture1.Left = (ScaleWidth - Picture1.Width) / 2 图片框水平位置图片框水平位置 Picture1.Top = (ScaleHeight - Picture1.Height) / 2 图片框垂直位置图片框垂直位置 Picture1.CurrentX = Picture1.ScaleLeft + Picture1.Width / 2 - _ Picture1.TextWidth(str1) /

7、 2 输出水平位置输出水平位置 Picture1.CurrentY = Picture1.ScaleTop + Picture1.Height / 2 - _ Picture1.TextHeight(str1) / 2 输出垂直位置输出垂直位置 Picture1.Print str1 在图片框中输出字符串在图片框中输出字符串str1End Sub各对象的其他参数保持默认值。程序设计时和运行结果见图各对象的其他参数保持默认值。程序设计时和运行结果见图4-2。无论怎样调整窗体,。无论怎样调整窗体,只要单击窗体,都会按题目要求调整图片框和文本的位置。只要单击窗体,都会按题目要求调整图片框和文本的位置

8、。TextWidth()为求文本宽度为求文本宽度的函数。的函数。 (a)设计时 (b)运行时4. 清除方法清除方法CLSCls 将清除图形和打印语句在运行时所产生的文本和图形,将清除图形和打印语句在运行时所产生的文本和图形,清除后的区域以背景色填充。但是设计时在清除后的区域以背景色填充。但是设计时在 Form 中使用中使用 Picture 属性设置的背景位图和放置的控件不受属性设置的背景位图和放置的控件不受 Cls 影响。影响。 语法:语法: 对象名称对象名称.Cls例如,为了在运行时双击窗体时清除图片框中的文本,编例如,为了在运行时双击窗体时清除图片框中的文本,编写的程序为:写的程序为:Pr

9、ivate Sub Form_DblClick() Picture1.Cls 清除图片框中的文本清除图片框中的文本End Sub如果将代码由如果将代码由Picture1.Cls改为改为.Cls,将无法清除图片框,将无法清除图片框中的文本。中的文本。 5. 使用使用“标签标签”控件的输出控件的输出标签(标签(Label)是)是VB中最常用的输出文本信息的工具,目前几中最常用的输出文本信息的工具,目前几乎完全取代了乎完全取代了Print方法。方法。例:建立一个例:建立一个Label控件和控件和Command控件。加入如下代码,运行控件。加入如下代码,运行程序。程序。 Private Sub Com

10、mand1_Click() Label1.WordWrap = True Label1.AutoSize = True Label1.BorderStyle = 1 Label1.BackColor = &H80000014 End Sub由运行结果可知,单击命令按钮后,标签控件可以自动适用内容,由运行结果可知,单击命令按钮后,标签控件可以自动适用内容,并自动换行,且加上边框,背景色为白色以突出显示文字。并自动换行,且加上边框,背景色为白色以突出显示文字。对象对象属性属性设计时属性值设计时属性值说明说明Command1Caption单击此按钮,令单击此按钮,令WordWrap=True,Aut

11、oSize=True命令按钮标题命令按钮标题Label1Caption将将WordWrap属性设置为属性设置为True,则,则Caption属属性的内容自动换行并垂直扩充;将性的内容自动换行并垂直扩充;将AutoSize属属性设置为性设置为True,控件自动适应内容,控件自动适应内容标签控件的内容标签控件的内容WordWrapFalse不自动换行不自动换行AutoSizeFalse控件不能自动调整控件不能自动调整Font宋体、三号宋体、三号(a)设计时 (b)运行结果3.1.2 数据输入1. 使用使用“文本框文本框”控件进行输入控件进行输入例例1:如:如图所示,在所示,在设计时建立三个建立三个

12、标签控件和三个文本控件和三个文本框控件。要求在运行框控件。要求在运行时,点,点击相相应的的计算按算按钮,会,会显示正示正确的确的计算算结果。果。Private Sub Command1_Click() Dim A As Integer Dim B As Integer Dim Sum As Single A = Text1.Text B = Text2.Text Sum = A + B Text3.Text = SumEnd Sub2. SetFocus 方法方法使某个控件获得焦点,可以有多种方法:使某个控件获得焦点,可以有多种方法:(1)直接单击这一控件。)直接单击这一控件。(2)按)按Ta

13、b键(或键(或Tab+Shfit组合键)按规定的次序在各控组合键)按规定的次序在各控件之间移动焦点。件之间移动焦点。(3)在代码中使用)在代码中使用SetFocus 方法使得某一控件获得焦点。方法使得某一控件获得焦点。使用使用SetFocus 方法的格式为:方法的格式为:.SetFocus其中:其中:为对象表达式,其值为可以获得焦点的控件:为对象表达式,其值为可以获得焦点的控件对象名称。对象名称。例例2:在上述工程中,增添一个命令按钮,单击该按钮时将清:在上述工程中,增添一个命令按钮,单击该按钮时将清空所有文本框中的内容空所有文本框中的内容,并使第一个文本框获得焦点。并使第一个文本框获得焦点。

14、 编写编写Command1的的Click事件的代码事件的代码 Private Sub Command1_Click() Text1.Text = Text2.Text = Text1.SetFocusEnd Sub 3. 与用户交互的函数和过程与用户交互的函数和过程 1InputBox函数函数 作用:在一对话框中显示提示,等待用户输入正文或按下按钮,作用:在一对话框中显示提示,等待用户输入正文或按下按钮,并返回包含文本框中内容,函数值的类型为并返回包含文本框中内容,函数值的类型为 String类型。类型。 语法格式:语法格式: 变量变量=InputBox(, ,)2MsgBox函数和函数和Ms

15、gBox过程过程作用:在对话框中显示信息,等待用户单击按钮,并返回一个整作用:在对话框中显示信息,等待用户单击按钮,并返回一个整数以标明用户单击了哪个按钮。数以标明用户单击了哪个按钮。 语法格式语法格式 变量变量=MsgBox(, , )例例3:在上述:在上述实例中,要求利用例中,要求利用输入入对话框框为操作数操作数赋值,再利用消息再利用消息对话框框输出出结果。果。如果如果单击“确定确定”按按钮,则 A 的的值为输入入值“1234”,否,否则为空。空。(2)MsgBox函数和函数和MsgBox过程过程MsgBox函数在对话框中显示信息,等待用户单击按钮,函数在对话框中显示信息,等待用户单击按钮

16、,并返回一个整数以标明用户单击了哪个按钮。其语法格式并返回一个整数以标明用户单击了哪个按钮。其语法格式为:为:变量变量=MsgBox(, , )MsgBox语句的用法为:语句的用法为:MsgBox , , 其中:其中:、的意义同的意义同InputBox函数。函数。可选项。整型表达式,指定显示按钮的数目及形可选项。整型表达式,指定显示按钮的数目及形式,使用的图标类型,缺省按钮的种类以及消息框的强制式,使用的图标类型,缺省按钮的种类以及消息框的强制回应等。如果省略,则回应等。如果省略,则 的缺省值为的缺省值为 0。l 设置值及其意义设置值及其意义分组分组系统常数系统常数值值描述描述按钮形式按钮形式

17、vbOKOnly0只显示只显示 OK 按钮。按钮。VbOKCancel1显示显示 OK 及及 Cancel 按钮。按钮。VbAbortRetryIgnore2显示显示 Abort、Retry 及及 Ignore 按钮。按钮。VbYesNoCancel3显示显示 Yes、No 及及 Cancel 按钮。按钮。VbYesNo4显示显示 Yes 及及 No 按钮。按钮。VbRetryCancel5显示显示 Retry 及及 Cancel 按钮。按钮。图标类型图标类型VbCritical16显示显示 Critical Message 图标。图标。VbQuestion32显示显示 Warning Que

18、ry 图标。图标。VbExclamation48显示显示 Warning Message 图标。图标。VbInformation64显示显示 Information Message 图标。图标。默认按钮默认按钮vbDefaultButton10第一个按钮是缺省值。第一个按钮是缺省值。vbDefaultButton2256第二个按钮是缺省值。第二个按钮是缺省值。vbDefaultButton3512第三个按钮是缺省值。第三个按钮是缺省值。lMsgBox函数的返回值系统常数系统常数返回值返回值描述描述VbOK1确定确定vbCancel2取消取消vbAbort3终止终止vbRetry4重试重试vbI

19、gnore5忽略忽略VbYes6是是VbNo7否否3.2 3.2 选择选择结构程序设计结构程序设计 3.2.1 If3.2.1 If条件语句条件语句 3.2.2 Select Case 3.2.2 Select Case 3.2.3 3.2.3 条件函数条件函数3.2.1 3.2.1 IfIf条件语句条件语句1 1单分支条件结构(单分支条件结构(If.ThenIf.Then语句)语句)2 2双分支结构(双分支结构(If.Then.ElseIf.Then.Else语句)语句)3 3多分支结构(多分支结构(IfThenElseIfIfThenElseIf语句)语句)4 4IfIf语句的嵌套语句的嵌

20、套1 1单分支条件结构(单分支条件结构(If.ThenIf.Then语句)语句)用用 If.Then 结构有条件地执行一个或多个语句。单行语法和多行块语法结构有条件地执行一个或多个语句。单行语法和多行块语法都可以使用:都可以使用:(1)If Then (2)If Then End If下面两个例子等价:下面两个例子等价:(1)If todayDate Now Then todayDate = Now(2)If todayDate Now Then todayDate = Now End If注意:注意:If.Then 的单行格式不用的单行格式不用 End If 语句语句。如果。如果 为为 Tr

21、ue 时时要执行多行代码,则必须使用多行块要执行多行代码,则必须使用多行块 If.Then.End If 语法。例如:语法。例如:If todayDate Now Then todayDate = Now Timer1.Enabled = False 定时器控制失效。定时器控制失效。End If True False 空空 todayDate NowTrue FalsetodayDate = NowTimer1.Enabled = False空空单分支条件分支条件语句句 单分支条件分支条件语句句实例例2. 2. 双分支结构(双分支结构(If.Then.ElseIf.Then.Else语句)语句

22、)可以用可以用 If.Then.Else If.Then.Else 块定义几个语句块,执行其中一个语句。其块定义几个语句块,执行其中一个语句。其语法格式也有两种形式:语法格式也有两种形式:(1 1)If If Then Then 1 Else Else 2 End If End If(2 2)If If Then Then Else Else 2当当的的值为真真时,执行行Then后面的后面的语句句块1(或(或语句句1),否),否则执行行Else后面的后面的语句句块2(或(或语句句2)。其流程)。其流程见图4-11。y= True False x0True False 例:例:计算分段函数算分段

23、函数y = 本本题在在选择条件条件时,可以,可以选择x0作作为条件,也可以条件,也可以选择x0作作为条件。条件。这里里选择x0作作为条件。条件。y=y=3*x*x+4*x-51)用)用单分支分支结构构实现y=3*x*x+4*x-5If x0 Then y=或或If x0 Then y=3*x*x+4*x-5If x0 Then y=但是,不能但是,不能这样表示:表示:If x0 Then y=(2)用双分支)用双分支结构构实现If x0 Then y=Elsey=3*x*x+4*x-5End Ify=3*x*x+4*x-53. 3. 多分支结构(多分支结构(IfThenElseIfIfThen

24、ElseIf语句)语句)多分支结构可以处理两个或两个以上分支。其语句形式为:多分支结构可以处理两个或两个以上分支。其语句形式为:If Then ElseIf Then Else End IfVisual Basic 首先测试首先测试。如果它为。如果它为 False,Visual Basic就测试就测试,依次类推,直到找到一个为,依次类推,直到找到一个为 True 的条的条件。当它找到一个为件。当它找到一个为 True 的条件时,的条件时,Visual Basic就会执行相应就会执行相应的语句块,然后执行的语句块,然后执行 End If 后面的代码。作为一个选择,可以包后面的代码。作为一个选择,

25、可以包含含 Else 语句块,如果条件都不是语句块,如果条件都不是 True,则,则 Visual Basic 执行执行 Else 语句块。语句块。语句句块n 语句句块n+1多分支多分支结构流程构流程FalseTrueTrueFalseTrueFalse语句块语句块n+1 语句块语句块n 语句块语句块1语句块语句块2例:大学录取新生时,根据学生总分情况给与奖励,条件如下:例:大学录取新生时,根据学生总分情况给与奖励,条件如下:(1)四门总分不低于)四门总分不低于700分,特等奖。分,特等奖。(2)四门总分)四门总分680分(含分(含680分)分)700分(不含分(不含700分),优秀奖。分),

26、优秀奖。(3)前三门单科不低于)前三门单科不低于145分,第四门不低于分,第四门不低于280分),特别奖。分),特别奖。(4)奖励按特等奖、优秀奖、特别奖由高到低,)奖励按特等奖、优秀奖、特别奖由高到低,不重复计奖不重复计奖(包(包括单科)。括单科)。要求:四科成绩(要求:四科成绩(intmark1、intmark2、intmark3、intmark4)依次在四个文本框中输入,总分(依次在四个文本框中输入,总分(intmark0)在标签控件上显示。)在标签控件上显示。单击命令按钮单击命令按钮Command1后,在对话框中显示获奖情况。后,在对话框中显示获奖情况。分析:获奖条件表达式分别为:分析

27、:获奖条件表达式分别为:(1)intmark0=700(2)intmark0=680 AND intmark0=145 OR intmark2=145 OR intmark3=145 OR intmark4=280多分支多分支结构流程构流程实例例TrueFlaseTrueFlaseintmark0=700TrueFlase特等奖特等奖优秀奖优秀奖intmark0=680 AND intmark0148 OR intmark2148 ORintmark3148 OR intmark4148特别奖特别奖您没有获奖您没有获奖4. If4. If语句的嵌套语句的嵌套上面学习了上面学习了If语句的基本形

28、式,可以通过这些基本形式加以复合,语句的基本形式,可以通过这些基本形式加以复合,获得更为复杂的获得更为复杂的If结构,称为结构,称为If语句的嵌套。一般形式如左图所语句的嵌套。一般形式如左图所示。右图为在示。右图为在Else块中嵌套块中嵌套If结构的形式。可根据实际情况选择结构的形式。可根据实际情况选择采用何种结构。采用何种结构。If语句复合结构的一般形式语句复合结构的一般形式 在在Else块中嵌套块中嵌套If结构的形式结构的形式 Select Case的结构形式为:的结构形式为:Select Case Case Case Case Case ElseEnd Select3.2.2 3.2.2

29、 Select CaseSelect Casel使用使用select case 语句重做上面的例子语句重做上面的例子3.2.3 条件函数条件函数IIf 函数函数IIf 函数的功能是根据表达式的值,来返回两部分中的其中一个。函数的功能是根据表达式的值,来返回两部分中的其中一个。其语法格式为:其语法格式为:IIf(, , )例如,求分段函数:例如,求分段函数:y= 函数函数值的的语句可以句可以简单地表示地表示为:y=IIf(x0,2*x+3,4-3*x)3.2.4 计时器控件计时器控件3.2.4 选择控件选择控件3.2.5 复选框控件3.3 循环结构循环结构3.3.1 Do.Loop语句语句3.3

30、.2 For.Next语句语句3.3.3 循环嵌套循环嵌套3.3.4 For Each.Next3.3.5 退出控制结构退出控制结构l4.3.1 Do.Loop语句语句1前测型前测型Do.Loop循环循环在前测型在前测型Do.Loop循环中,根据循环中,根据 判断是否执行判断是否执行 。其语法格式为:。其语法格式为:Do While | Until Loop例例编写程序写程序: 判断一个数是否判断一个数是否为素数。素数。(1)设计流程流程图根据根据题目要求,目要求,设计出如出如图所示的流程所示的流程图。求素数流程求素数流程图n不是素数不是素数n是素数是素数And m=0m=0TrueFalse

31、m=1k=k+1输入数据输入数据nVal(Text1.Text) 2147483647FalseTrue数数据据溢溢出出,重重新新输输入入n当当k 2147483647 Then MsgBox 数据溢出,数据溢出,请重新重新输入入, vbOKOnly + vbOKCancel + vbInformation, 数据数据错误 Text1.Text = Else判断素数程序运行判断素数程序运行实例例 n = CLng(Text1.Text) m = 0: k = 2 Do While k = Sqr(n) And m = 0 If n Mod k = 0 Then m = 1 Else k=k +

32、 1 End If Loop If m = 0 Then Label2.Caption = 是一个素数是一个素数 Else Label2.Caption = 不是一个素数不是一个素数 End IfEnd IfText1.SetFocus End Sub2.后测型后测型Do.Loop循环循环Do.Loop 语句的另一种演变形式是先执行语句的另一种演变形式是先执行,然后在,然后在每次执行后测试每次执行后测试 。称为后测型。称为后测型Do.Loop循环。这循环。这种形式保证种形式保证至少执行至少执行1次,其语法格式为:次,其语法格式为: DoLoop While | Until 输入入m,nm存放大

33、数存放大数,n存放小数存放小数输出出n求求m/n的余数的余数mn数数nr的余数的余数例:求两个正整数例:求两个正整数m和和n的最大公的最大公约数。数。求最大公求最大公约数最常用的方法是数最常用的方法是辗转相除法。其相除法。其设计思路是:思路是:(1)假)假设m大于大于n;(2)用)用n作除数除作除数除m,得余数,得余数r。(3)若)若r0,则令令mn,nr,继续相除得到新的相除得到新的r值,直到,直到r=0为止。止。(4)最后的)最后的n即即为最大公最大公约数。数。解解题步步骤如下:如下:1)设计流程流程图根据根据题意,意,设计出如出如图所示流程所示流程图。求最大公求最大公约数的流程数的流程图

34、直到直到r=02)设计应用程序界面用程序界面所需添加的控件的属性所需添加的控件的属性值参参见表。表。控件控件Caption(或或Text)属性值属性值Label1请输入两个正整数请输入两个正整数Label2m nLabel3m 和和 n 的最大公约数是的最大公约数是Label4空白(设计时)空白(设计时)Text11空白(设计时)空白(设计时)Text12空白(设计时)空白(设计时)Command1求求 解解判断素数应用程序控件属性值判断素数应用程序控件属性值(3)编写代写代码Private Sub Command1_Click() Dim m As Long, n As Long, temp

35、 As Long If (Val(Text1.Text) = 0 Or Val(Text2.Text) = 0) Or Val(Text1.Text) 2147483647 Or Val(Text2.Text) 2147483647 Then MsgBox 输入的数入的数0或溢出,或溢出,请重新重新输入!入! MsgBox 输入的数入的数0或溢出或溢出,请重新重新输入入!, vbInformation + vbOKOnly, 数据数据错误 Text1.Text = Text2.Text = 求最大公求最大公约数程序运行数程序运行实例例 Text1.SetFocusElsem = Val(Tex

36、t1.Text)n = Val(Text2.Text)If m n Then temp = m: m = n: n = tempEnd If Do r = m Mod n m = n n = r Loop While r 0 Label3.Caption = mEnd IfEnd Sub3.3.2 For.Next3.3.2 For.Next语句语句Do 循环使用于在不知道执行多少次循环使用于在不知道执行多少次时。有时,循环时。有时,循环的次数是已知的,这时最好使用的次数是已知的,这时最好使用 For.Next 循环。与循环。与 Do 循环循环不同,不同, For 循环使用一个叫做计数器的变量

37、,每重复一次循环循环使用一个叫做计数器的变量,每重复一次循环之后,计数器变量的值就会增加或者减少。之后,计数器变量的值就会增加或者减少。For 循环的语法如循环的语法如下:下:For = To Step Next 例:求例:求11000之之间所有能所有能够被被13整除的数。按每行各行整除的数。按每行各行10个数排个数排满足条件的数。足条件的数。(1)设计流程流程图根据根据题意,意,设计如如图所示流程所示流程图。求被求被13整除的数的流程整除的数的流程图 (2)设计应用程序界面用程序界面应用程序所需控件属性用程序所需控件属性值参参见表。表。控件控件Caption属性值属性值Command1单击此

38、按钮求单击此按钮求11000值见能被值见能被13整除的数整除的数Picture1无此属性值无此属性值求被求被13整除的数应用程序控件属性值整除的数应用程序控件属性值(3)编写代写代码程序运行情况程序运行情况 Dim i As Integer, j As Integer j = 0 For i = 1 To 1000 If i Mod 13 = 0 Then j = j + 1 Picture1.Print i; If j Mod 10 = 0 Then Picture1.Print End If Next i Picture1.Print Picture1.Print 一共有一共有 & j &

39、 个数可以被个数可以被13整除整除End Sub其中,其中,语句句If j Mod 10 = 0 Then Picture1.Print控制每行打印控制每行打印满足条件的数的个数(足条件的数的个数(10个),注意个),注意语句句 Picture1.Print i;后的分后的分号不能省略。号不能省略。程序运行情况参程序运行情况参见图。Private Sub Command1_Click()3.3.3 循环嵌套循环嵌套在一个循环体内又出现另外的循环语句称为循环嵌套。在一个循环体内又出现另外的循环语句称为循环嵌套。 例:指出下面程序的运行例:指出下面程序的运行结果:果:Private Sub For

40、m_Click() Dim a As Integer, i As Integer, j As Integer a = 0 For i = 1 To 5 For j = -2 To 2 a = a + i + j程序运行程序运行结果果 Next j Print a;Next iPrintPrint i, j, aEnd Sub例:例:编程求程求图所示乘法九九表。所示乘法九九表。执行分析行分析图可知:如果将每一个等式作可知:如果将每一个等式作为一个方一个方阵的的节点,点,则每一个等式每一个等式出出现的位置上行列的数字是相同的。因此,可以用如下嵌套的循的位置上行列的数字是相同的。因此,可以用如下嵌套

41、的循环作作为对一一个个节点的描述:点的描述:For i=1 to 9 For j=1 to i Next jNext i这里,里,为乘法等式:乘法等式:expss = i & & j & = & i * j。现在,主要的在,主要的问题是控制每个表达是出是控制每个表达是出现的位置,可以用的位置,可以用Tab函数来函数来实现,假假设给每个等式的每个等式的宽度度为10,第一个等式出,第一个等式出现在第在第4行,行,则Tab函数可以函数可以这样表示:表示:Tab(j - 1) * 10 + 3); 乘法九九表(乘法九九表(1)在窗体上添加一个命令按钮和一个在窗体上添加一个命令按钮和一个Pictrue控

42、件,编写控件,编写command1_click事件的代码如下:事件的代码如下:Private Sub Command1_Click() Dim i As Integer, j As Integer Dim expss As String For i = 1 To 9 For j = 1 To i expss = i & & j & = & i * j Picture1.Print Tab(j - 1) * 10 + 1); expss; Next j Picture1.Print Next iEnd Sub乘法九九表(乘法九九表(2)For Each.Next 循环与循环与 For.Next

43、循环类似,但它对数组或循环类似,但它对数组或对象集合中的每一个元素重复一组语句,而不是重复语句一定的对象集合中的每一个元素重复一组语句,而不是重复语句一定的次数。次数。For Each.Next 循环非常适合于不知道一个集合有多少元循环非常适合于不知道一个集合有多少元素的情况。素的情况。For Each.Next 循环的语法格式如下:循环的语法格式如下:For Each In Next elementt4.3.4 For Each.Next4.3.4 For Each.Next3.3.5 退出控制结构退出控制结构1Exit For 语句和语句和 Exit Do语句语句2Go To语句语句Go

44、To语句的语法格式为:语句的语法格式为:Go To 标号标号|行号行号3.3.6 列表框与组合框列表框与组合框l1 列表框列表框2 2 组合框组合框 列表框(列表框(ListBoxListBox)通过显示多个选择项,供)通过显示多个选择项,供用户选择其中的项,达到与用户对话的目的用户选择其中的项,达到与用户对话的目的 。如。如果有较多的选项而不能一次全部显示时,果有较多的选项而不能一次全部显示时,VBVB会自动会自动加上滚动条。加上滚动条。 列列表表框框最最主主要要的的特特点点是是只只能能从从其其中中选选择择,而而不能直接写入或修改其中的内容不能直接写入或修改其中的内容。 使使用用列列表表框框

45、输输入入数数据据是是保保证证数数据据标标准准化化的的重重要手段,它是一个重要的输入控件。要手段,它是一个重要的输入控件。1 1 列表框(1) (1) 列表框的属性列表框的属性 ListIndex ListIndex属性属性: :表示执行时选中的列表项序号,表示执行时选中的列表项序号,从从0 0开始,若未选中任何项,开始,若未选中任何项,ListIndexListIndex的值为的值为-1-1。 ListCount ListCount属性属性: :表示列表框中项目的数量。表示列表框中项目的数量。ListCount-1ListCount-1表示最后一项的序号。该属性只能在程表示最后一项的序号。该属

46、性只能在程序中设置或引用。序中设置或引用。 ListList属性属性: :该属性是一个字该属性是一个字符型数组,存放列表框的选项,符型数组,存放列表框的选项,listlist数组的下标是从数组的下标是从0 0开始的。开始的。例如:例如:list(0) list(0) 的值是的值是“马明马明”。该属性在设计状态和程序中都可该属性在设计状态和程序中都可以设置。以设置。 Selected Selected属性属性: :用于判断列表项是否被选中,用于判断列表项是否被选中,是一个逻辑数组。如:是一个逻辑数组。如:List.Selected(0)=TrueList.Selected(0)=True表表示第

47、一项被选中。该属性只能在程序中设置或引示第一项被选中。该属性只能在程序中设置或引用。用。 TextText属性属性: :表示被选中列表项的文本内容。该表示被选中列表项的文本内容。该属性是默认属性,只能在程序中设置或引用。属性是默认属性,只能在程序中设置或引用。在上表中,如果选定在上表中,如果选定 “ “吴海燕吴海燕”,则,则texttext属性值属性值为为“吴海燕吴海燕” ” MultiSelect MultiSelect属性属性: :用于设定列表框内是否允许用于设定列表框内是否允许同时选择多个列表项。有同时选择多个列表项。有3 3种方式:种方式:0 None:0 None:禁止多项选择禁止多

48、项选择1 Simple:1 Simple:简单多项选择。鼠标单击或按空格简单多项选择。鼠标单击或按空格键表示选定键表示选定/ /取消一个已经选定的选择项。取消一个已经选定的选择项。3 Extended:3 Extended:扩展多项选择。按住扩展多项选择。按住CtrlCtrl键,同键,同时用鼠标单击或按空格键表示选定时用鼠标单击或按空格键表示选定/ /取消一个已经取消一个已经选定的选择项;按住选定的选择项;按住ShiftShift键,同时单击鼠标或移键,同时单击鼠标或移动光标键,就可以从前一个选定的项扩展到当前动光标键,就可以从前一个选定的项扩展到当前选择项,即选定多个连续项。选择项,即选定多

49、个连续项。(2) (2) 列表框的方法列表框的方法 列表框中的选择项可以简单地在设计状态通过列表框中的选择项可以简单地在设计状态通过ListList属性设置,也可以在程序中用属性设置,也可以在程序中用 AddItemAddItem方法来方法来填写,用填写,用 RemoveItem RemoveItem或或 Clear Clear方法删除。方法删除。 AddItemAddItem方法方法: :把一个选项加入列表框。把一个选项加入列表框。 格式:对象格式:对象.AddItem item , Index.AddItem item , Index其中:其中: item item是将要加入列表框的选项。

50、必须是字是将要加入列表框的选项。必须是字符串表达式。符串表达式。 Index Index决定新增项目在列表框或组合框中的决定新增项目在列表框或组合框中的位置。如果位置。如果indexindex省略,则添加的列表项将放在最省略,则添加的列表项将放在最后。后。 RemoveItem RemoveItem方法方法: :用于删除列表框中的列表项。用于删除列表框中的列表项。 格式:对象格式:对象.RemoveItem Index.RemoveItem Index其中其中IndexIndex是被删除项目在列表框中的位置。是被删除项目在列表框中的位置。 Clear Clear方法方法: :用于清除列表项中的

51、所有内容。用于清除列表项中的所有内容。 格式:对象格式:对象.Clear.Clear(3) (3) 列表框的事件列表框的事件 列表框常用的事件就是列表框常用的事件就是ClickClick、DblClickDblClick、GotFocusGotFocus、LostFocusLostFocus等大多数控件通用的事件等大多数控件通用的事件 (4) (4) 列表框的使用列表框的使用列表框控件显示一个项目列表,让用户从其中选列表框控件显示一个项目列表,让用户从其中选择一项或多项。如果项目总数超过可显示的项目择一项或多项。如果项目总数超过可显示的项目数,就自动添加滚动条。它是进行快速和规范输数,就自动添

52、加滚动条。它是进行快速和规范输入的好工具。入的好工具。例例: :利用列表框显示学生的籍贯,并可以添加列表项。利用列表框显示学生的籍贯,并可以添加列表项。创建下图所示窗口,选择列表框中学生姓名,在籍贯创建下图所示窗口,选择列表框中学生姓名,在籍贯处显示该学生的籍贯;单击处显示该学生的籍贯;单击“添加添加”按钮,出现输入按钮,出现输入学生姓名文本框,并且按钮的文字变为学生姓名文本框,并且按钮的文字变为“确定确定”,此,此时输入姓名,在显示籍贯处输入籍贯,单击时输入姓名,在显示籍贯处输入籍贯,单击“确定确定”按钮,将项目添加到列表框中。按钮,将项目添加到列表框中。对象对象属性名属性名属性值属性值窗体

53、窗体(名称)(名称)Form1Form1CaptionCaptionForm1Form1列表框列表框(名称)(名称)LstLstListList(空)(空)标签标签1 1(名称)(名称)LblNameLblNameCaptionCaption学生姓名学生姓名标签标签2 2(名称)(名称)LblNativeLblNativeCaptionCaption学生籍贯学生籍贯文本框文本框1 1(名称)(名称)TxtNameTxtNameTextText( (空)空)文本框文本框2 2(名称)(名称)TxtNativeTxtNativeTextText( (空)空)命令按钮命令按钮(名称)(名称)CmdA

54、ddCmdAddCaptionCaption确定确定Dim NativeArray() As String 定义籍贯数组为动态数组定义籍贯数组为动态数组对列表框初始化对列表框初始化 Private Sub Form_Load() ReDim NativeArray(0 To 8) Lst.AddItemAddItem “李亿李亿” NativeArray(0) = 天津天津 Lst.AddItem “王晓波王晓波” NativeArray(1) = 武汉武汉 Lst.AddItem “万明万明” NativeArray(2) = 上海上海 Lst.AddItem “张君张君” NativeAr

55、ray(3) = “北京北京” Lst.AddItem “马萧萧马萧萧” NativeArray(4) = 云南云南 Lst.AddItem “季林季林” NativeArray(5) = 南京南京 Lst.AddItem “陈奇陈奇” NativeArray(6) = 广州广州 Lst.AddItem “朱小朱小 NativeArray(7) = “大连大连” Lst.AddItem “周和平周和平” NativeArray(8) = “河北河北” End Sub 列表框列表框ClickClick事件,姓名标签及文本框隐藏,籍贯处显示学生籍贯事件,姓名标签及文本框隐藏,籍贯处显示学生籍贯Pr

56、ivate Sub Lst_Click()Private Sub Lst_Click() CmdAdd.Caption = CmdAdd.Caption = 添加添加 TxtName.Visible = False TxtName.Visible = False LblName.Visible = False LblName.Visible = False TxtNative.Text = NativeArray(Lst.ListIndex) TxtNative.Text = NativeArray(Lst.ListIndex)End SubEnd Sub 单击添加按钮事件单击添加按钮事件Pr

57、ivate Sub CmdAdd_Click()Private Sub CmdAdd_Click() CmdAdd.Caption = CmdAdd.Caption = 确定确定 TxtName.Visible = True TxtName.Visible = True LblName.Visible = True LblName.Visible = True Lst.AddItem TxtName Lst.AddItem TxtName i = Lst.ListCount i = Lst.ListCount ReDim Preserve NativeArray(i) ReDim Preser

58、ve NativeArray(i) NativeArray(Lst.ListCount - 1) = TxtNative.Text NativeArray(Lst.ListCount - 1) = TxtNative.Text TxtName = TxtName = TxtNative = TxtNative = End SubEnd Sub 组组合合框框(ComboBox)是是一一种种同同时时具具有有文文本本框框和和列列表表框框特特性性的的控控件件,用用户户既既可可以以在在其其列列表表框框部部分分选选择择一一个个固固定定的的字字符符串串,也也可可以以在在其其文文本本框框部部分分输入一个新的字

59、符串。输入一个新的字符串。 组合框有三种不同的风格:下拉式组合框、组合框有三种不同的风格:下拉式组合框、简单组合框和下拉式列表框简单组合框和下拉式列表框 下拉式组合框下拉式组合框: :显示在屏幕上的仅是文本编显示在屏幕上的仅是文本编辑框和一个下拉箭头。辑框和一个下拉箭头。 简单组合框简单组合框: :将文本编辑框与列表框一起显将文本编辑框与列表框一起显示在屏幕上。示在屏幕上。 下拉是列表框下拉是列表框: :功能与下拉式组合框类似,功能与下拉式组合框类似,区别是不能输入列表框中没有的项。区别是不能输入列表框中没有的项。 2 组合框(1)(1)组合框属性组合框属性 组组合合框框是是文文本本框框和和列

60、列表表框框的的组组合合,拥拥有有列列表表框框和和文文本本框框的的大大部部分分属属性性。组组合合框框也也有有SelStartSelStart、SelLengthSelLength和和 SelText SelText这三个文本框特有的属性。这三个文本框特有的属性。 组组合合框框的的特特有有属属性性是是StyleStyle属属性性。该该属属性性用用于于确定组合框的类型和显示方式,共有三个值:确定组合框的类型和显示方式,共有三个值: 0 0 下下拉拉式式组组合合框框,由由一一个个文文本本框框和和一一个个下下拉拉式式列列表表框框组组成成,用用户户既既可可以以在在文文本本框框中中输输入入文文本本,也也可以

61、从列表框中选择列表项,这是系统默认值;可以从列表框中选择列表项,这是系统默认值; l l 简简单单组组合合框框,也也由由一一个个文文本本框框和和一一个个标标准准列列表表框框组组成成,但但列列表表框框不不是是下下拉拉的的,它它始始终终显显示示在在屏屏幕幕上上,用用户户既既可可以以在在文文本本框框中中输输人人文文本本,也也可可以以从从列表框中选择列表项;列表框中选择列表项; 2 2 下下拉拉式式列列表表框框,它它不不允允许许用用户户输输入入文文本本,只只能从下拉列表框中选择列表项。能从下拉列表框中选择列表项。(2)(2)组合框的方法组合框的方法 在在 组组 合合 框框 中中 也也 可可 以以 通通

62、 过过 在在 程程 序序 中中 使使 用用AddItemAddItem方方法法添添加加选选择择项项;用用RemoveItemRemoveItem方方法法和和ClearClear方法删除选择项。其操作方法与列表框一样。方法删除选择项。其操作方法与列表框一样。(3)(3)组合框的事件组合框的事件 组合框的事件随组合框的事件随StyleStyle属性的值不同而有所不属性的值不同而有所不同:同: 当当Style=0,Style=0,下拉式列表框有下拉式列表框有ClickClick事件和事件和ChangeChange事件;事件; 当当Style=1, Style=1, 简单组合框有简单组合框有DblClickDblClick事件和事件和ChangeChange事件;事件; 当当Style=2Style=2,下拉式列表框有,下拉式列表框有ClickClick事件。事件。(4)(4)组合框的使用组合框的使用l例:程序界面如图所示本章结束本章结束

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号