版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第5 5章章 循环结构程序设计循环结构程序设计n5 51 1 循环结构程序设计的概念循环结构程序设计的概念n 循环结构可以避免重复操作,循环重复执行的循环结构可以避免重复操作,循环重复执行的程序块称为程序块称为“循环体循环体”。从而简化程序,节约内存。从而简化程序,节约内存。n 循环结构的语句有:循环结构的语句有:n 1. DoLoop1. DoLoopn 2. WhileWend 2. WhileWendn 3. For.Next 3. For.Nextn 4. For EachNext 4. For EachNext等。等。n其中最常用的是其中最常用的是DoloopDoloop和和For
2、.NextFor.Next。n循环结构应根据循环类型与条件,确保循环体得以循环结构应根据循环类型与条件,确保循环体得以终止(即非死循环)。终止(即非死循环)。5 52 Do.Loop2 Do.Loop语句语句n DOLoop DOLoop语句有两种语法形式语句有两种语法形式: :n 1. 1.前测型前测型 2.2.后测型后测型n5 52 21 1 前测型前测型DOLoopDOLoop循环循环n 首先判断条件,根据条件决定是否执行循首先判断条件,根据条件决定是否执行循环。其流程图如图环。其流程图如图5-15-1所示。所示。图图5-1 5-1 前测型循环结构流程图前测型循环结构流程图 其语法为其语
3、法为n DoDoWhile |UntilWhile |Until(条件)(条件)n (语句列(语句列1 1)n Exit DoExit Don (语句列(语句列2 2)n LoopLoopn说明:说明:n(l l)Do WhileLoopDo WhileLoop是是当型循环当型循环语句,当条件为真(语句,当条件为真(TrueTrue)时执行循环体,条件为假(时执行循环体,条件为假(FalseFalse)时,终止循环。)时,终止循环。n Do UntilLoopDo UntilLoop是是直到型循环直到型循环语句,条件为假时执行循语句,条件为假时执行循环体,直到条件为真时,终止循环。环体,直到条
4、件为真时,终止循环。n n(2 2)(条件)是条件表达式,为循环的条件。其)(条件)是条件表达式,为循环的条件。其值为值为TrueTrue或或FalseFalse。n(3 3)(语句列)是一条或多条命令(循环体),)(语句列)是一条或多条命令(循环体),它们将被重复当或直到条件为它们将被重复当或直到条件为TrueTrue。n(4 4)在循环体中可以有)在循环体中可以有Exit DoExit Do语句,随时跳出语句,随时跳出DoLoopDoLoop循环。循环。 * *【例【例 5 5l l】求累加和】求累加和 1 12 23 3. . 100100(如图(如图 5 52 2)。)。n 分析:采用
5、累加的方法,用变量分析:采用累加的方法,用变量S S来存放累加的和(开始为来存放累加的和(开始为0 0),用变量),用变量n n来存放来存放“加数加数”(加到(加到s s中的数)。这中的数)。这里里n n又称为计数器,从又称为计数器,从1 1开始到开始到100100为止。为止。n 根据以上分析画出流程图如图根据以上分析画出流程图如图5 53 3所示所示设计步骤如下:设计步骤如下:n窗体界面的设计参见前面章节,这里仅给出命令按钮的Click事件代码:nPrivate Sub Command1_Click()nDim s As Integer, n As Integerns = 0: n = 1n
6、Do While n 100Do Until n 100ns = s + ns = s + nnn = n + 1n = n + 1nLoopLoopnLabel1.Caption = l+2+3+.+l00 = & sLabel1.Caption = l+2+3+.+l00 = & snEnd SubEnd Sub 略【例略【例5 52 2】输入一个正整】输入一个正整数,利用数,利用“当型当型”循环判断是否循环判断是否素数。素数。n 分析:所谓分析:所谓“素数素数”是指除了是指除了1 1和该数本和该数本身,不能被任何整数整除的数。判断一个自身,不能被任何整数整除的数。判断一个自然数然数n n
7、(n3n3)是否素数,只要依次用)是否素数,只要依次用2 2n n的的开平方作除数去除开平方作除数去除n,n,若若n n不能被其中任何一个不能被其中任何一个数整除,则数整除,则n n即为素数,如图即为素数,如图5 54 4所示。所示。设计步骤如下:设计步骤如下:n窗体界面的设计参见前面章节,这里给出命令按钮窗体界面的设计参见前面章节,这里给出命令按钮的的CliCkCliCk事件代码事件代码nPrivate Sub Command1_Click()Private Sub Command1_Click()nDim n As LongDim n As LongnSelect Case Val(Tex
8、t1.Text)Select Case Val(Text1.Text)nCase Is 3Case Is 2Case Is 2nMsgBox”MsgBox”此数太大!此数太大!”,vblnformationvblnformationvbOKOnlyvbOKOnly,”注意注意”nCase ElseCase Elsenn = Val(Text1.Text)n = Val(Text1.Text)ns = 0: i = 2s = 0: i = 2nDo While i = Sqr(n) And s = 0Do While i = Sqr(n) And s = 0nIf n Mod i = 0 The
9、nIf n Mod i = 0 Thenns = 1s = 1nElseElseni = i + 1i = i + 1nEnd IfEnd IfnLoopLoopn a a 是一个素数是一个素数 nElseElsen a=” a=”不是素数不是素数”nEnd IfEnd IfnLabel1 .Caption = Str(n) & aLabel1 .Caption = Str(n) & anEnd SelectEnd SelectnText1.SetFocusText1.SetFocusnEnd SubEnd Sub n另外,为了使用文本框得到焦点后,文本立另外,为了使用文本框得到焦点后,文本立
10、即被选中,编写即被选中,编写Text1Text1的的GotFocusGotFocus事件代事件代n码如下:码如下:nPrivate Sub Text1_GotFocus()Private Sub Text1_GotFocus()nText1.SelStart = 0Text1.SelStart = 0nText1.SelLength = Len(Text1.Text)Text1.SelLength = Len(Text1.Text)nEnd SubEnd Sub5 52 22 2 后测型后测型Do LoopDo Loop循环循环n 后测型后测型DOLoopDOLoop循环结构,首先执行循循环结
11、构,首先执行循环体,然后判断条件,根据条件决定是否继环体,然后判断条件,根据条件决定是否继续执行循环,其语法为:续执行循环,其语法为:n DODOn (语句列(语句列1 1) n Exit DO Exit DO n (语句列(语句列2 2) n Loop Loop While UntilWhile Until(条件)(条件) n说明:同前测型说明:同前测型 略略 例例5 53 3】输入有效数字的位数,利】输入有效数字的位数,利用下述公式计算圆周率用下述公式计算圆周率pipi的近似值:的近似值:n 分析:首先找出公式中无穷乘积各项的规律:分析:首先找出公式中无穷乘积各项的规律:设第设第n n项的
12、分母为项的分母为pnpn,则第,则第n n1 1项的分项的分n母为母为Pn+1=2+pn Pn+1=2+pn 若设若设 n n项项 积为积为 SnSn,则前,则前n n项乘积项乘积为为 Sn+1Sn+12Sn/pn+12Sn/pn+1 图图5 57 7 计算圆周率的流程图计算圆周率的流程图n 设计步骤如下:设计步骤如下:n (1 1)建立应用程序用户界面与设置对象)建立应用程序用户界面与设置对象属性。参照第属性。参照第3 3章的方法建立用户界面与设置章的方法建立用户界面与设置对对n象属性,如图象属性,如图5 58 8所示。所示。n (2 2)编写程序代码。)编写程序代码。n 根据流程图,可以写
13、出命令按钮根据流程图,可以写出命令按钮Command1Command1的的ClickClick事件代码为事件代码为nPrivate Sub Command1_Click()Private Sub Command1_Click()nDim m As Integer.Dim m As Integer.nm = Val(Text1.Text)m = Val(Text1.Text)np = 0#:s = 2#:e = 0.lmp = 0#:s = 2#:e = 0.lmnDoDont = s: p = Sqr(2 + p): s = s t = s: p = Sqr(2 + p): s = s * *
14、 2/ p 2/ pnLooP Until Abs(t - s) 0.1 mLooP Until Abs(t - s) 0.1 mnf = String(m - 1, #)f = String(m - 1, #)nText2.Text = Format(s, 0. & f)Text2.Text = Format(s, 0. & f)nTex1.SetFocusTex1.SetFocusnEnd subEnd subn文本框文本框Text1Text1的的GotFocusGotFocus事件代码:事件代码:nPrivate Sub Text1_GotFocus()Private Sub Text1
15、_GotFocus()nTex1.SelStart = 0Tex1.SelStart = 0nText1.SelLength = Len(Tex1.Text)Text1.SelLength = Len(Tex1.Text)nEnd SubEnd Sub * *例例5.45.4输入两个正整数,求它们输入两个正整数,求它们的最大公约数。的最大公约数。n 分析:求最大公约数可以用分析:求最大公约数可以用“辗转相除法辗转相除法”,方,方法如下:法如下:n (1 1)以大数)以大数m m作被除数,小数作被除数,小数n n做除数,相除后余做除数,相除后余数为数为r r。n (2 2)若)若r0r0,则,则
16、m=nm=n,n=rn=r,继续相除得到新的,继续相除得到新的r r。若仍有若仍有r0r0,则重复此过程,直到,则重复此过程,直到r r0 0为止。为止。n (3 3)最后的)最后的n n就是最大公约数。根据此分析画出就是最大公约数。根据此分析画出流程图如图流程图如图5 59 9所示。所示。n图图5 59 9 辗转相除法辗转相除法设计步骤如下设计步骤如下: :n窗体界面的设计如图窗体界面的设计如图5-10 5-10 所示,所示,这里给出命令按钮的这里给出命令按钮的ClickClick事件代事件代码:码:nPrivate Sub Command1_Click()Private Sub Comma
17、nd1_Click()nm = Val(Text1.Text)m = Val(Text1.Text)nn = Val(Text2.Text)n = Val(Text2.Text)nlf n lf n * * m = 0 Then m = 0 ThennMsgBoxMsgBox两数都不能为两数都不能为 0 0! nExit SubExit SubnEnd IfEnd IfnIf m n ThenIf m n Thennt = m: m = n: n = tt = m: m = n: n = tnEnd IfEnd IfnDoDonr = m Mod nr = m Mod nnm = nm = n
18、nn = rn = rnLoop While r 0Loop While r 0nText3.Text = mText3.Text = mnEnd SubEnd Sub5 53 For Next3 For Next语句语句n 在不知道循环内需要执行多少次语句时,宜用在不知道循环内需要执行多少次语句时,宜用DoloopDoloop循环。但是若知道要执行的循环次数时,循环。但是若知道要执行的循环次数时,则最好使用则最好使用For.NextFor.Next循环。与循环。与DoLoopDoLoop循环不同,循环不同,ForFor循环使用一个循环变量,每重复一次循环之后,循环使用一个循环变量,每重复一次
19、循环之后,循环变量的值就会自动增加或者减少。循环变量的值就会自动增加或者减少。 其语法其语法为为: :nForFor(循环变量)(初值)(循环变量)(初值)TOTO(终值)(终值)StepStep(步长)(步长)n (语句列(语句列1 1) n Exit For Exit Forn (语句列(语句列2 2)nNextNext(循环变量)(循环变量) 说明:说明:n (l l)(循环变量)为必要参数,被用作循环)(循环变量)为必要参数,被用作循环计数器的数值变量。计数器的数值变量。n (2 2)(初值)和(终值)都是必要参数;如)(初值)和(终值)都是必要参数;如果没有指定(步长),则缺省值为果
20、没有指定(步长),则缺省值为1 1。n (3 3)(步长)可以是正数或负数。步长参数)(步长)可以是正数或负数。步长参数值决定循环的执行情况:如果步长的值为正数,则值决定循环的执行情况:如果步长的值为正数,则必须初值必须初值= = 终值;否则必须初值终值;否则必须初值= = 终值。终值。n (4 4)可以在循环中的任何位置放置任意个)可以在循环中的任何位置放置任意个 Exit ForExit For语句,随时退出循环。语句,随时退出循环。n (5 5)如果省略)如果省略NextNext语句中的(循环变量),语句中的(循环变量),将不影响循环的执行。将不影响循环的执行。 * *【例【例5 55
21、5利用利用ForFor循环结构显示循环结构显示10001000以内的所有能被以内的所有能被3737整除的自然数整除的自然数设计步骤如下:设计步骤如下:n (1 1)窗体界面的设计与属性设置。在新)窗体界面的设计与属性设置。在新建的窗体中增加一个文本框建的窗体中增加一个文本框Text1Text1、一个命令、一个命令按钮按钮Command1Command1和一个框架和一个框架Frame1Frame1。选中。选中Frame1Frame1,在其中增加一个标签,在其中增加一个标签Label1Label1,用来,用来显示程序的说明。其中各对象的属性设置参显示程序的说明。其中各对象的属性设置参见图见图5 5
22、1313。 (2 2)编写代码。)编写代码。n 编写命令按钮的编写命令按钮的ClickClick事件代码:事件代码:nPrivate Sub Command1_Click()Private Sub Command1_Click()na = a = nFor n = 1 To 1000For n = 1 To 1000nIf n Mod 37 = 0 ThenIf n Mod 37 = 0 Thenna = a & Str(n) & vbCrLfa = a & Str(n) & vbCrLfnEnd IfEnd IfnNextNextnText1.Text = aText1.Text = anE
23、nd SubEnd Subn 说明:常量说明:常量VbCrLfVbCrLf表示插入一个回车与换行符组合,也表示插入一个回车与换行符组合,也可以直接用一个回车加上换行符(可以直接用一个回车加上换行符(ChrChr(l3l3)ChrChr(1010)来产生一个行断点。来产生一个行断点。 【例【例 5 56 6】求从】求从10001000到到11001100之间的所有素数。之间的所有素数。n 分析:例分析:例5-25-2介绍了利用介绍了利用DoloopDoloop循环循环判断素数的方法,现在只需对判断素数的方法,现在只需对10001000l100l100之之间的各整数依次测试。在如图间的各整数依次测
24、试。在如图5-145-14所示的流所示的流程图中,使用了双重程图中,使用了双重FORFOR循环。循环。n 窗体界面的设计参见图窗体界面的设计参见图5 51515,这里给出,这里给出命令按钮的命令按钮的ClickClick事件代码:事件代码:nPrivate Sub Command1_Click()Private Sub Command1_Click()n a = a = nFor n = 1001 To 1100 Step 2For n = 1001 To 1100 Step 2ns = 0s = 0nFor i = 2 To Int(Sqr(n)For i = 2 To Int(Sqr(n)
25、nif n Mod i = 0 Thenif n Mod i = 0 Thenns = 1s = 1nExit ForExit FornEnd IfEnd IfnNextNextnIf s = 0 Then a = a & Str(n) & vbCrLfIf s = 0 Then a = a & Str(n) & vbCrLfnNextNextnText1.Text = aText1.Text = anEnd SubEnd Sub5 54 4 列表框与组合框列表框与组合框n 列表框和组合框为用户提供选项和信息列表。列表框和组合框为用户提供选项和信息列表。在列表框中,任何时候都能看到多个项,而在
26、组合在列表框中,任何时候都能看到多个项,而在组合框中,平时只能看到一个项,用鼠标单击向下按钮框中,平时只能看到一个项,用鼠标单击向下按钮可以看到多项的列表。可以看到多项的列表。n5 54 41 1 列表框列表框n 当列表框不能同时显示所有选择项时,当列表框不能同时显示所有选择项时,VBVB将自将自动给列表框加上一个垂直的滚动条,使用户可以上动给列表框加上一个垂直的滚动条,使用户可以上下滚动列表框,以查阅所有的选项。下滚动列表框,以查阅所有的选项。n 1 1列表框的属性与方法列表框的属性与方法 n 表表5-15-1列出了常用的列表框属性。列出了常用的列表框属性。 表表5-1 5-1 常用的列表框
27、属性。常用的列表框属性。 属属 性性 说说 明明 1. List 1. List 设置或返回列表中选项,使用设置或返回列表中选项,使用ListList属性可以得属性可以得到列表中的任何选项。到列表中的任何选项。 例如例如List1.List(2)List1.List(2)表表示列表框示列表框List1List1中第中第3 3项的值项的值 2. ListCount 2. ListCount 返回列表框中的选项数返回列表框中的选项数 3. ListIndex 3. ListIndex 返回当前选项的索引号,如果没有选项被选中,返回当前选项的索引号,如果没有选项被选中,该属性为该属性为-1 -1 4
28、. selected 4. selected 在程序运行使用代码来选定列表中的选项,例在程序运行使用代码来选定列表中的选项,例如如 List1.Selected(2)List1.Selected(2)TrueTrue使得列表框使得列表框List1List1中的第中的第3 3条选项被选中条选项被选中 5. Text 5. Text 设置或返回列表中设置或返回列表中当前选项当前选项的值的值 表表5-2 5-2 常用列表框方法常用列表框方法nn方方 法法 说说 明明 nnAddItem AddItem 用来向列表框中添加数据用来向列表框中添加数据nnClear Clear 清除列表中的各项清除列表中
29、的各项 nnRemoveItemRemoveItem用来从列表框中删除数据用来从列表框中删除数据n 2 2使用列表框显示数据使用列表框显示数据n 【例【例5 57 7】将例】将例5 56 6中的文本框改为列表框中的文本框改为列表框(如图(如图5 51616所示)。所示)。n 将窗体中的文本框换为列表框,无需修改列表将窗体中的文本框换为列表框,无需修改列表框的属性,只需修改命令按钮的框的属性,只需修改命令按钮的ClickClick事件代码:事件代码:nPrivate sub conmmand1_Click()Private sub conmmand1_Click()nList1.ClearLis
30、t1.ClearnFor n = 1001 To 1100 Step 2For n = 1001 To 1100 Step 2ns = 0s = 0nFor i = 2 To Int(Sqr(n)For i = 2 To Int(Sqr(n)nIf n Mod i = 0 ThenIf n Mod i = 0 Thenns = 1: Exit Fors = 1: Exit FornEnd IfEnd IfnNextNextnIf s = 0 Then List1.AddItem nIf s = 0 Then List1.AddItem nnNextNextnEnd SubEnd Subn使用列
31、表框的使用列表框的AddAdd方法增加列表项方法增加列表项【例【例5 58 8】“同构数同构数”是指这样的整数:它恰好出现是指这样的整数:它恰好出现在其平方数的右端,例如在其平方数的右端,例如 1 1和和 5 5就是这样的数。试找就是这样的数。试找出出 l l99999999之间的全部之间的全部“同构数同构数”(如图(如图5-175-17所示)。所示)。分析:分析:l l位同构数位同构数 n n应满足条件:应满足条件:n nn2 Mod 10n2 Mod 10 2 2位同构数位同构数 n n应满足条件:应满足条件:n nn2 Mod 100n2 Mod 100 3 3位同构数位同构数 n n应
32、满足条件:应满足条件:n nn2 Mod 1000n2 Mod 1000 4 4位同构数位同构数 n n应满足条件:应满足条件:n nn2 Mod 10000n2 Mod 10000窗体界面的设计参见图窗体界面的设计参见图5 51717流程图如图流程图如图5-l85-l8命令按钮的命令按钮的ClickClick事件代码:事件代码:nPrivate Sub Command1_Click()Private Sub Command1_Click()nList1.ClearList1.ClearnFor n = 1 To 9999For n = 1 To 9999nSelect Case nSelec
33、t Case nnCase n 2 Mod 10Case n 2 Mod 10nList1.AddItem Format(n, ) & Format(n 2, List1.AddItem Format(n, ) & Format(n 2, )nCase n 2 Mod 100Case n 2 Mod 100nList1.AddItem Format(n, ) & Format(n 2, List1.AddItem Format(n, ) & Format(n 2, )nCase n 2 Mod 1000Case n 2 Mod 1000nList1.AddItem Format(n, ) &
34、Format(n 2, List1.AddItem Format(n, ) & Format(n 2, )nCase n 2 Mod 10000Case n 2 Mod 10000nList1.AddItem Format(n, ) & Format(n 2, List1.AddItem Format(n, ) & Format(n 2, )nEnd SelectEnd SelectnNextNextnEnd SubEnd Sub 例例5 599小学生做加减法的算术练习程序小学生做加减法的算术练习程序n随机给出两位数的加减法算术题,要求学生回答,随机给出两位数的加减法算术题,要求学生回答,答对
35、的打答对的打“ ”,答错的打,答错的打“X”X”。将做过的题目。将做过的题目存放在列表框中备查,并随时给出答题的正确率存放在列表框中备查,并随时给出答题的正确率(如图(如图5 51919所示)。所示)。n分析:分析:n随机函数随机函数RndRnd是返回一个(是返回一个(0 0,l l)之间的随机小数;)之间的随机小数;生成某范围内随机整数生成某范围内随机整数 最小值,最大值最小值,最大值 n公式为:公式为:Int( Int( 最大值最大值- -最小值最小值+1+1)* * Rnd+ Rnd+最小值)最小值)n 设计步骤如下:设计步骤如下:n(1 1)建立应用程序用户界面。)建立应用程序用户界面
36、。n一个标签一个标签Label1Label1(显示题目)、一个文本框(显示题目)、一个文本框Text1Text1(输入答案)、一个列表框(输入答案)、一个列表框List1List1(保(保存做过的题目)、一个命令按钮存做过的题目)、一个命令按钮Command1Command1、n一个图像一个图像Image1Image1以及一个框架以及一个框架Frame1Frame1。激活。激活Frame1Frame1后,在其中增加两个标签,图后,在其中增加两个标签,图5 520 20 (2 2)设置对象属性,见表)设置对象属性,见表5 53 3。 表表5 53 3 属性的设置属性的设置nn对象对象 属性属性属
37、性值属性值说明说明 nnForm1 Tag 0.0 Form1 Tag 0.0 存放题目总数存放题目总数 nnList1 Tag 0.0 List1 Tag 0.0 存放答对的题数存放答对的题数n(3 3)编写代码)编写代码n出题部分由窗体的激活(出题部分由窗体的激活(ActivateActivate)事件代码完成:)事件代码完成:nPrivate Sub Form_Activate()Private Sub Form_Activate()nRandomize (Time)Randomize (Time)na = Int(10 + 90 a = Int(10 + 90 * * Rnd) Rnd
38、)nb = Int(10 + 90 b = Int(10 + 90 * * Rnd) Rnd)np = Int(2 p = Int(2 * * Rnd) Rnd)nSelect CaseSelect Case p pnCaseCase 0 0nLabel1.Caption = a & + & b & =Label1.Caption = a & + & b & =nText1.Tag = a + b Text1.Tag = a + b 将本题答案放入将本题答案放入Text1.TapText1.Tap中中nCase Case 1 1nIf a b Then T = a: a = b: b = TI
39、f a b Then T = a: a = b: b = TnLabel1.Caption = a & - & b & =Label1.Caption = a & - & b & =nText1.Tag = a - b Text1.Tag = a - b 将本题答案放入将本题答案放入Tex1.TagTex1.Tag中中nEnd SelectEnd SelectnForm1.Tag = Form1.Tag + 1Form1.Tag = Form1.Tag + 1nText1.setfocusText1.setfocusnText1.Text = Text1.Text = nEnd SubEnd
40、Subn答题部分由文本框的按健(答题部分由文本框的按健(KeyPressKeyPress)事件代码完成:)事件代码完成:nPrivate Sub Text1_KeyPress(KeyAscii As Integer)Private Sub Text1_KeyPress(KeyAscii As Integer)nIfIf KeyAscii = 13 ThenKeyAscii = 13 Thennfm = !fm = !nIfIf Val(Text1.Text) = Text1.Tag Then Val(Text1.Text) = Text1.Tag ThennItem = Format(Labe
41、l1.Caption & Text1.Text, fm) & Item = Format(Label1.Caption & Text1.Text, fm) & nList1.Tag = List1.Tag + 1List1.Tag = List1.Tag + 1nElseElsenItem = Format(Label1.Caption & Text1.Text, fm) & Item = Format(Label1.Caption & Text1.Text, fm) & nEnd IfEnd IfnList1.AddItem Item, 0 List1.AddItem Item, 0 将题目
42、和回答插入到列表框中的第将题目和回答插入到列表框中的第1 1项项nLabel2.Caption = Label2.Caption = 共共 & Form1.Tag & & Form1.Tag & 题,题, & Chr(13) & & Chr(13) & 正确率为:正确率为: nLabel3.Caption = Format(List1.Tag / Form1.Tag, Label3.Caption = Format(List1.Tag / Form1.Tag, #0.0#%)#0.0#%)nForm_Activate Form_Activate 调用出题代码调用出题代码nEnd IfEnd I
43、fnEnd SubEnd Subn“关闭关闭”按钮的按钮的ClickClick事件代码:事件代码:nPrivate Sub Command1_Click()Private Sub Command1_Click()nUnload MeUnload MenEnd SubEnd Sub 3 3选择和移动数据选择和移动数据n 【例【例5 51010】利用循环结构和列表框控件,】利用循环结构和列表框控件,设计的设计的“选项移动选项移动”窗体。如图窗体。如图5 52121所示。所示。 设计步骤如下:设计步骤如下:n (1 1)建立应用程序用户界面与设置对象)建立应用程序用户界面与设置对象属性。其中列表框的
44、属性设置参见表属性。其中列表框的属性设置参见表5 54 4。 表表5-4 5-4 属性设置属性设置n对对 象象 属属 性性 属性值属性值 说说 明明nList1 Multiselect 0-None List1 Multiselect 0-None 多项选择多项选择n style 1-Checkbox style 1-Checkbox 风格风格n nList2 Multiselect 2-Extended List2 Multiselect 2-Extended 多项选择多项选择 说明:说明:n(1 1)多重选择)多重选择(Multiselect(Multiselect属性属性) )nMult
45、iselectMultiselect0 0 不能不能nMultlselectMultlselectl l 简单多重简单多重( (可选多项可选多项) )nMultiselectMultiselect2 2 扩展多重扩展多重n扩展多重:扩展多重:Shift+Shift+单击鼠标左键单击鼠标左键( (选连续项选连续项) )n Ctrl+ Ctrl+单击鼠标左键单击鼠标左键( (可选不连续项可选不连续项) )n(2 2)List1.Selected(i)List1.Selected(i)TrueTrue表示列表框表示列表框 List1List1中的第中的第 i+1i+1项选项被选中。项选项被选中。n(
46、3 3)List1.List(i) List1.List(i) 表示列表框表示列表框List1List1中第中第i+1i+1项项的值。的值。(2 2)编写事件代码。)编写事件代码。n编写窗体的读入(编写窗体的读入(LoadLoad)事件代码:)事件代码:nPrivate Sub Form_Load()Private Sub Form_Load()n List1.AddItem List1.AddItem 电冰箱电冰箱 n List1.AddItem List1.AddItem 洗衣机洗衣机 n List1.AddItem List1.AddItem 彩色电视机彩色电视机 n List1.Add
47、Item List1.AddItem 组合音响组合音响 n List1.AddItem List1.AddItem 影碟机影碟机 n List1.AddItem List1.AddItem 电水壶电水壶 n List1.AddItem List1.AddItem 饮水机饮水机 n List1.AddItem List1.AddItem 微波炉微波炉 n List1.AddItem List1.AddItem 照相机照相机 n Label3 = Ctrl Label3 = Ctrl或或Shift + Shift + 鼠标左键可以在鼠标左键可以在右框中选择多项。右框中选择多项。 nEnd SubE
48、nd Sub编写命令按钮的编写命令按钮的ClickClick事件代码:事件代码:nPrivate Sub Command1_Click()Private Sub Command1_Click()ni = 0i = 0nDo While i List1.ListCountDo While i List1.ListCountnIf List1.Selected(i) = True ThenIf List1.Selected(i) = True ThennList2.AddItem List1.List(i)List2.AddItem List1.List(i)nList1.RemoveItem i
49、List1.RemoveItem inElseElseni = i + 1i = i + 1nEnd IfEnd IfnLoopLoopnEnd SubEnd SubnPrivate Sub Command2_Click()Private Sub Command2_Click()nFor i = 0 To List1.ListCount - 1For i = 0 To List1.ListCount - 1nList2.AddItem List1.List(i)List2.AddItem List1.List(i)nNextNextnList1.ClearList1.ClearnEnd Sub
50、End SubnPrivate Sub Command3_Click()ni = 0nDo While i List2.ListCountnIf List2.Selected(i) = True ThennList1.AddItem List2.List(i)nList2.RemoveItem inElseni = i + 1nEnd IfnLoopnEnd SubnPrivate Sub Command4_Click()nFor i = 0 To List2.ListCount - 1nList1.AddItem List2.List(i)nNextnList2.ClearnEnd Sub5
51、.4.2 5.4.2 组合框组合框n 组合框组合框ComboBoxComboBox兼有兼有 TextBoxTextBox和和 ListBoxListBox两者两者的功能,有的功能,有3 3种形式的组合框:可设置种形式的组合框:可设置StyleStyle属性值属性值选择。选择。nStyleStyle属性为:属性为:n2 2Dropdown ListDropdown List(下拉列表框)(下拉列表框) 一般只能选项,可以单击向下按钮显示一般只能选项,可以单击向下按钮显示下拉列表下拉列表框框。n1 1Simple ComboSimple Combo(简单组合框)(简单组合框) 将文本框和列表框简单
52、地组合在一起。将文本框和列表框简单地组合在一起。n0 0Dropdown ComboDropdown Combo(下拉组合框)(下拉组合框) (默认)(默认) 将文本框和将文本框和下拉列表框下拉列表框组合在一起,可以单击向组合在一起,可以单击向下按钮显示可滚动的选项列表,还可以输入新选项。下按钮显示可滚动的选项列表,还可以输入新选项。 1 1下拉列表框下拉列表框n n 略【例略【例5 51111】将例】将例5 59 9算术练习中的列表框改算术练习中的列表框改为组合框(下拉列表框),如图为组合框(下拉列表框),如图5 52222所示。所示。n图图5 522 22 使用下拉列表框使用下拉列表框n
53、设计步骤如下:设计步骤如下:n (1 1)建立应用程序用户界面与设置对象属性。)建立应用程序用户界面与设置对象属性。在例在例5 59 9中将列表框改为组合框,并修中将列表框改为组合框,并修改其属性见表改其属性见表5 55 5。 表表5 55 5 属性设置属性设置n对对 象象 属属 性性 属性值属性值 说说 明明nCombol Style 2- Dropdown List Combol Style 2- Dropdown List 下拉列表框下拉列表框 n Tag 0.0 Tag 0.0 存放答对的题数存放答对的题数n另外,增加一个命令按钮(重置)另外,增加一个命令按钮(重置)Command4C
54、ommand4,其他,其他界面的修改与属性的设置,请参见图界面的修改与属性的设置,请参见图5 52222。 (2 2)编写程序代码)编写程序代码n 修改文本框修改文本框 Text1Text1的按健(的按健(KeyPressKeyPress)事件代)事件代码:码:nPrivate Sub Text1_KeyPress (KeyAscii As Private Sub Text1_KeyPress (KeyAscii As Integer)Integer)nIf KeyAscii = l3 ThenIf KeyAscii = l3 ThennFm = !Fm = !nlf Text1.Text =
55、 Text1.Tag Thenlf Text1.Text = Text1.Tag ThennItem = Format(Label1.Caption & Text1.Text, Item = Format(Label1.Caption & Text1.Text, Fm) & JFm) & JnCombo1.Tag = Combo1.Tag + 1Combo1.Tag = Combo1.Tag + 1nEIseEIsenItem = Format(Label1.Caption & Text1.Text, Item = Format(Label1.Caption & Text1.Text, Fm)
56、 & XFm) & XnAnd IfAnd IfnCombo1.AddItem Item, 0Combo1.AddItem Item, 0nCombo1.ListIndex = 0Combo1.ListIndex = 0nLabel3Label3CaptionCaption 共共 & Form1.Tap& & Form1.Tap&题,正确题,正确率为:率为: nLabel2.Caption = Format(Combo1.Tag / Label2.Caption = Format(Combo1.Tag / Form1.Tag, #0.0#%)Form1.Tag, #0.0#%)nForm_Ac
57、tivateForm_ActivatenEnd IfEnd IfnEnd SubEnd Sub编写命令按钮编写命令按钮Command2Command2的的ClickClick事件代码:事件代码:nPrivate Sub Command2_Click()Private Sub Command2_Click()nForm1.Tag = 0#Form1.Tag = 0#nCombo1.Tag = 0#Combo1.Tag = 0#nCombo1.ClearCombo1.ClearnLabel3.CaptionLabel3.Caption 欢迎重新开始欢迎重新开始!nLabel2.Caption =
58、Label2.Caption = nForm ActivateForm ActivatenText1.SetFocusText1.SetFocusnEnd SubEnd Subn 其他代码同例其他代码同例5- 95- 9。n n2 2简单组合框简单组合框n 【例【例5 51212】“简易抽奖机简易抽奖机”。在组合框中。在组合框中输入号码,按输入号码,按“开始开始”按钮可以得到中奖的号码按钮可以得到中奖的号码(如图(如图5 52323所示)。图所示)。图5- 24 5- 24 建立程序界面建立程序界面n 设计步骤如下:设计步骤如下:n (1 1)建立应用程序用户界面与设置对象属性。)建立应用程序
59、用户界面与设置对象属性。增加一个框架增加一个框架Frame1Frame1,选中,选中Frame1Frame1,在其中增加一,在其中增加一个组合框个组合框Combo1Combo1、一个标签、一个标签Label1Label1和一个命令按钮和一个命令按钮Command1Command1。将。将Combo1Combo1的的 StyleStyle属性改为:属性改为:l lSimple ComboSimple Combo,其他属性的设置参见图,其他属性的设置参见图5 52424。 (2 2)编写事件代码。)编写事件代码。n 编写组合框编写组合框Combo1Combo1的按健(的按健(KeyPressKey
60、Press)事件代码:)事件代码:nPrivate Sub Combo1_KeyPress(KeyAscii As Private Sub Combo1_KeyPress(KeyAscii As Integer)Integer)nIf KeyAscii = 13 Then If KeyAscii = 13 Then 按回车键后,接收输入的按回车键后,接收输入的选项选项nCombo1.AddItem Combo1.Text, 0Combo1.AddItem Combo1.Text, 0nCombo1.SelStart = 0Combo1.SelStart = 0nCombo1.SelLength
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国孕妇装市场竞争状况及投资趋势分析报告
- 2024-2030年中国多腔高速半自动吹瓶机资金申请报告
- 2024-2030年中国啤酒行业发展规模及前景趋势分析报告
- 2024-2030年中国厢式货车行业市场发展格局及未来投资潜力分析报告
- 2024-2030年中国卸妆产品市场营销模式及发展竞争力分析报告版
- 2024年版摩托车销售合同3篇
- 2024年度环保型砂石生产设备采购合同协议2篇
- 2021-2022学年河南省渑池高级中学高一月考数学试卷
- 2025年哈尔滨货运从业资格证模拟考试0题b2b
- 2025年鹤壁道路货运从业资格证考试
- 海洋平台深水管道高效保温技术
- 《新疆大学版学术期刊目录》(人文社科)
- 充电桩维保投标方案
- 《如何写文献综述》课件
- 肛瘘LIFT术式介绍
- 通过《古文观止》选读了解古代文学的社会功能与价值
- 语言本能:人类语言进化的奥秘
- 职业生涯规划(图文)课件
- 2024版国开电大专科《EXCEL在财务中的应用》在线形考(形考作业一至四)试题及答案
- 能源管理系统平台软件数据库设计说明书
- 中外园林史第七章-中国近现代园林发展
评论
0/150
提交评论