下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第5章循環(huán)結(jié)構(gòu)程序設計5.1循環(huán)結(jié)構(gòu)程序設計的概念實際的數(shù)據(jù)處理中,常需要進行一些大量重復的操作如求:1+2+3+ +n1!+2!+3!+ .+n!這些操作都可有用循環(huán)結(jié)構(gòu)實現(xiàn)VB中有多種循環(huán)結(jié)構(gòu),最常用的有 Do丄oop結(jié)構(gòu)和For.Next結(jié)構(gòu)5.2 DoLoop語句了/循環(huán)休、1繼續(xù)循環(huán)的條件DO循環(huán)的格式無條件循環(huán)DO循環(huán)體繼續(xù)循環(huán)的條件循環(huán)體LOOP當循環(huán)前測試型DO WHILE 繼續(xù)循環(huán)的條件循環(huán)體LOOP當循環(huán)后測試型終止循環(huán)條件循環(huán)體循環(huán)休DO循環(huán)體LOOP WHILE 繼續(xù)循環(huán)的條件直到循環(huán)前測試DO UNTIL 終止循環(huán)的條件循環(huán)體LOOP直到循環(huán)后測試型DO循環(huán)體LOOP
2、 UNTIL 終止循環(huán)的條件另外可以用EXIT DO語句終止循環(huán)例(p94-1.vbp)用exit do退出循環(huán)操作Private Sub Comma nd1_Click()Dim Sum As Sin gle, x As Si ngleSum = 0Dox = Val(I nputBox("e nter a value")If x = 0 Then Exit DoSum = Sum + xPrin t "sum=" SumLoopEnd Sub例 5-1(P95-1.VBP)計算 1+2+3+ .+100可以用當循環(huán)來實現(xiàn)。Private Sub Co
3、mma nd1_Click()'當循環(huán)Dim s As In teger, n As In tegers = 0: n = 1Do While n = 100s = s + nn = n + 1LoopLabel2.Capti on = "1+2+3+.+100=" & sEnd Sub循環(huán)體終止循環(huán)條件n1當n=100s0直到口100s-s+nnn+1輸出sPrivate Sub Comma nd2_Click()'直到循環(huán)Dim s As In teger, n As In tegers = 0: n = 1Do Un til n > 10
4、0s = s + nn = n + 1LoopLabel2.Caption = "1+2+3+.+100=" & s & "(直到循環(huán))"End Sub1、 2、 3、100,試計算其累加和Private Sub Form_Load()Label1.Caption ="今有 100 個數(shù):Label2.Captio n =""Comma nd1.Captio n = "&C計算"End Sub例5-2(p96-1.vbp)判斷一個正整數(shù)是否是素數(shù)。選用當循環(huán)。Private Sub
5、 Comma nd1_Click()Dim n As Integer, i As Integer, a As StringSelect Case Val(Text1.Text)Case Is < 3MsgBox "請輸入一個大于 2 的整數(shù)! ", vbInformation + vbOKOnly," 注意"Case Is > 2147483647MsgBox "此數(shù)太大! ", vbInformation + vbOKOnly," 注意"Case Elsen = Val (Text1.Text)s =
6、 0: i = 2Do While i <= Sqr( n) And s = 0 If n Mod i = 0 The ns = 1Elsei = i + 1End IfLoopIf s = 0 The na ="是一個素數(shù)”Else輸入一個正整數(shù)nI2? s0 (s為整除標志)當I二 Vn and s二0如果 n mod 1=0-真SlT _T n 弔 x|請輸入一個正整數(shù):綢J斷素數(shù)997是一個素數(shù)a ="不是一個素數(shù)"End IfLabell.Caption = Str(n) & aEnd SelectTextl.SetFocusEnd Sub
7、例5-3(p97-1.vbp)計算n。計算公式:分析:分子為2保持不變?nèi)舻趎項的分母為p”,則第n+1項的分母為p”“ = . 2 p” 第1項除外,第2項的分母為 20,p的初值為0若前n項的乘積為sn,則前n+1項乘積為s計2SnPni輸入小數(shù)點后面有效數(shù)字位數(shù)mt"-Spsqr(2+p)直到Itp|<0. lin輸岀周率pi二s第1項的乘積為2,s的初值為2 通過前后兩個乘積的差,來控制循 環(huán)。從而得流程圖:Private Sub Comma nd1_Click()Dim m As Integer, p As Double, s As DoubleDim pi As Do
8、uble, f As Stri ng , t As Doublem = Val(Text1.Text)p = 0: s = 2Dot = s: p = Sqr(2 + p): s = s * 2 / p Loop Until Abs(t - s) < 0.1 八 m f = String(m - 1, "#")Text2.Text = Format(s, "0." & f) Text1.SetFocusEnd Sub例5-4輸入兩個正整數(shù),求它們的最大公約數(shù)(P98-VBP。用輾轉(zhuǎn)相除法,m n是兩個正整數(shù),r是余數(shù),用直到循環(huán)操作的流程圖
9、: 注:若m<n第一次作除法時r=m,第二作除法就會正常進行。Private Sub Comma nd1_Click()Dim m As Integer, n As Integer, r As Integerm = Val(Text1.Text)n = Val(Text2.Text)輸入整數(shù) n注:叫11不能同時為0rm/n的余數(shù)除數(shù)作被除數(shù))n-r(余數(shù)作除數(shù)直到工二0輸岀最后一次作除法的除數(shù)mIf n * m = 0 The nMsgBox "兩個數(shù)都不能為 0 ! “"Exit SubEnd IfDor = m Mod nm = nn = rLoop Un ti
10、l r = 0Text3.Text = mEnd Sub5.3 For Next 語句FOR循環(huán)結(jié)構(gòu)一一計數(shù)循環(huán)FOR-NEXT循環(huán)結(jié)構(gòu)格式FOR循環(huán)變量=循環(huán)變量初值TO循環(huán)變量終值STEP循環(huán)變量增量 循環(huán)體NEXT循環(huán)變量FOR-NEXT循環(huán)結(jié)構(gòu)由三部分組成:FOR語句:即循環(huán)起始語句(又稱為循環(huán)說明語句),說明循環(huán)變量的初值、 增量(步長)和終值,實現(xiàn)對循環(huán)次數(shù)的控制,如上例中的i便是循環(huán)變量。循環(huán)體:給出循環(huán)操作語句組或程序段 NEXT語句:即循環(huán)終端語句,給 出了循環(huán)操作結(jié)束的位置,每次執(zhí)行到 next語句,循環(huán)變量都按步長增值。 注意:FOR語句與NEXT語句必須成對出現(xiàn),缺一不
11、可; FOR語句必須在NEXT語句之前; FOR語句中的循環(huán)變量與 NEXT語句中的循環(huán)變量必須為同一變量 如果步長為+1,則“STEP何省略.FOR-NEXT循環(huán)的執(zhí)行過程循環(huán)變量取得初值將循環(huán)變量的當前值與終值比較: 如果循環(huán)變量的當前值沒有超過終值,程序執(zhí)行循環(huán)體中的操作,遇next語句 后循環(huán)變量按步長增值,然后又回到FOR語句,重復循環(huán)變量的當前值與終值比 較的操作; 如果循環(huán)變量超過終值,程序終止循環(huán),跳過循環(huán)體,執(zhí)行next語句的后繼語 句.說明:注意程序的終止條件是循環(huán)變量的值超過終值”,而不是循環(huán)變量的值等于 終值”。如上例中,當i=100,執(zhí)行了 s=s+i后,程序又回到f
12、or語句,i=i+1,i=101, 這時循環(huán)變量的值超過了終值,程序終止循環(huán),執(zhí)行 next之后的語句。當循環(huán)體內(nèi)沒有對循環(huán)變量進行修改時,循環(huán)的次數(shù)可以直接從根據(jù)循環(huán)變 量的初值、終值和步長計算出來:循環(huán)次數(shù)=|循環(huán)變量終值循環(huán)變量初值1|步長|注意:如果在循環(huán)體中對循環(huán)變量進行了修改,上述公式將不成立。循環(huán)變量應盡量使用整型變量,以免出現(xiàn)誤差。因為實型變量在存儲和運算 過程中會出現(xiàn)誤差,至使循環(huán)次數(shù)多一次或少一次。循環(huán)變量初值和終值可以是正值、負值或零。步長可以是正值或負值。注意:循環(huán)變量超過終值,是指沿循環(huán)變量變化的方向超過終值;所以當步長為正 時,循環(huán)變量必須大于終值才終止循環(huán);當步長
13、為負時,循環(huán)變量必須小于終值才 終止循環(huán).當步長為零時,循環(huán)永不終止,循環(huán)變量可以在循環(huán)體中引用,也可以不引用,由程序需要定(7)EXIT FOR 語句 可以實現(xiàn)提前終止for-next循環(huán)。FOR i = 1 TO 100sum = sum + i * iIF sum >= 100 THEN EXIT FORNEXT iPRINT sum 例5-5利用for循環(huán)結(jié)構(gòu)顯示1000以內(nèi)的所有能被37整除的自然數(shù)字符串變量忍一Sri 從 1 到 1000如果n mod 37=0真&str(n)輸 Feral輸出數(shù)字串忍Private Sub Comma nd1_Click() Dim
14、 a As String, n As In teger a =""For n = 1 To 1000If n Mod 37 = 0 The na = a & Str( n) & vbCrLf End Ifill3148I185222259296333370創(chuàng)按開始按鈕 ,可以在文 本框中顯示 所有1000以內(nèi) 能被37整NextText1.Text = aEnd Sub注:Text1屬性 Multiline 設置為 True,屬性 ScrollBars設置為2 (Vertical),運行時才會出現(xiàn) 垂直滾動條,且這兩個屬性都只能在窗體設計時 設置,在運行時這
15、兩個屬性是只讀的,不能更改。例5-6(p101-1.vbp)求從1000到1100之間的所有素數(shù)程序流程如右圖:是一個用fornext實現(xiàn)的雙重循環(huán), 外層循環(huán)依次生成1000到1100之間的 各個數(shù),內(nèi)層循環(huán)對每一個數(shù)進行測 試,測試后退出內(nèi)層循環(huán)后判斷:若s=0,是素數(shù),輸出該數(shù);若s<>0,不是素數(shù),n自動加1,進入 下一輪外循環(huán),準備測試下一個數(shù)Private Sub Comma nd1_Click()Dim a As String, n As In tegerDim i As In teger, s As In tegera =""For n = 10
16、01 To 1100 Step 2s = 0For i = 2 To Sqr( n)If n Mod i = 0 The ns = 1Exit ForEnd IfNextIf s = 0 The n a = a & Str( n) & vbCrLfNextText1.Text = aEnd Sub字符串變量亂一"d 從1000到 1100(整除標志)i 從 2 到 sqr (n)n mod i=0真E退出內(nèi)層循環(huán)s=0真輸出n冠 Foral10091013101910211031103310391049按開始按鈕, 可以在文本框 中顯示所有從1000到1100之 間的
17、素數(shù)5.4列表框與組合框列表框(ListBox):是用戶可以從中進行選擇的滾動列表組合框(ComboBox)將文本框和列表框的功能結(jié)合在一起。用戶可通過在組合框中輸入文本來選定項目,也可從列表中選定項目列表框李寧4華梅 偉春紅 張王關Z1筍列表框示例-Bra列表中 的第一項是 ListI ndex=0 , ListCount 始終比最大的ListBox控件顯示項目列表,從其中可以選擇一項或多項。如果項目總數(shù)超過了可顯示的項目數(shù),就自動在ListBox控件上 添加滾動條1屬性基本屬性丄istBox最常用的屬性有 Name、Enabled、Visiblet禾口 Index(控件數(shù)組中用)等.Lis
18、t屬性:返回或設置控件的列表部分的項目object .List (index) = string object對象表達式,一個 ListBox對象。In dex列表中具體某一項目的號碼。stri ng子符串表達式,指定列表項目。列表是一個字符串數(shù)組,數(shù)組的每一項都是一列表項目,在設計時可以通過屬 性瀏覽器得到。List數(shù)組的下標是從0開始的,也就是說,第一個元素的下標是0可在設計狀態(tài)添置項目,用Ctrl+Enter回車換行參見例(p102-1.vbp)。Listindex屬性:返回或設置控件中當前選擇項目的索引在窗體設計時不可 用,只能在程序中設置和引用。說明表達式List(List1.Lis
19、tIndex)返回當前選擇項目的字符串ListI ndex 值大 1。對于可以做多重選擇的控件,該屬性的行為取決 于所選擇項目的個數(shù)。如果只選擇了一個項目, Listindex返回該項目的 索引。在多重選擇中(MultiSelect=1/2) , Listindex返回包含在焦點矩形內(nèi)的項目的索引,而不管該項目是否被選。例(P102-1.VBP)Private Sub List1_Click()Textl = List1.List(0)Text2 = List1. List(List1. Listindex)End SubListCount屬性:返回控件的列表部分項目的個數(shù)。該屬性只能在程序中
20、設 置和引用.列表中最后一個元素的下標=ListCount-1Selected屬性:返回或設置在ListBox控件中的一個項的選擇狀態(tài)。該屬性 是一個與List屬性一樣、有相同項數(shù)的布爾值數(shù)組。在窗體設計時是不可用 的。格式:objectSelected(ndex) = booleanObject對象表達式,其值是一個 ListBox對象。in dex控件中項的索引號。Boolean 個用來指定項是否被選中的布爾表達式其值為:True表示項被選中,False (缺省值)表示項沒有被選中。說明:此屬性對能夠復選是尤其有用的。可以快速檢查在列表中哪些項已被選 中。也可以從代碼中使用該屬性選中或取消
21、選中列表中的一些項。Sorted屬性:返回一個值,指定控件的元素是否自動按字母表順序排序,該屬性只能在設計狀態(tài)設置當值為:True列表中的項目按字符碼順序排序。False (缺省值)列表中的項目不按字母表順序排序。Text屬性:ListBox控件返回列表框中詵擇的項目:返回值總與表達式 list(listlndex)的返冋值相同。只能在程序中設置和引用.在運行時為只讀。可以 用Text屬性來確定當前選擇的項目。(p102-2.vbp)Private Sub List1_Click()Textl = List1.List(0)Text2 = Listl.TextEnd SubMultiSelec
22、t屬性:返回或設置一個值,該值指示 是否能夠在ListBox控件中進行復選以及如何進行復選。在運行時是只讀的0 (缺省值)不允許復選。1簡單復選。鼠標單擊或按下 SPACEBAR (空格鍵)在列表中選中或取消 選中項。(箭頭鍵移動焦點。)2擴展復選。按下 SHIFT并單擊鼠標或按下 SHIFT以及一個箭頭鍵(上 箭頭、下箭頭、左箭頭、和右箭頭)將在以前選中項的基礎上擴展選擇到當前 選中項。按下 CTRL并單擊鼠標來在列表中選中或取消選中項Style屬性值為:常數(shù)值描述VbListBoxStandard0(缺省值)標準的。ListBox控件按它在 Visual Basic老版本中的樣 子顯示;即
23、,象是文本項的列表。VbListBoxCheckbox1復選框。在 ListBox控件中,每一個文本項的邊上都有一個復選框。在ListBox中可以選擇多項。2.方法Additem方法 用于將項目添加到 ListBox控件,語法格式:objectAddItem item, indexItem必需的。字符串表達式,它用來指定添加到該對象的項目。Index可選的。是整數(shù),它用來指定新項目或行在該對象中的位置。對于ListBox控件的首項,index為0。說明:如果所給出的index值有效,則item將放置在object中相應的位置。 如果省略index,當Sorted屬性設置為 True 時,ite
24、m 將添加到恰當?shù)呐?序位置,當Sorted屬性設置為False時,item將添加到列表的結(jié)尾Removeitem方法:用以從 ListBox控件中刪除一項。語法格式:objectRemoveltem indexobject必需的。一個對象表達式,其值為應用于”列表中的一個ListBox對象。index必需的。一個整數(shù),它表示要刪除的項或行在對象中的位置。對于ListBox中的首項,in dex = 0。Clear方法:用于清除ListBox的內(nèi)容。語法格式:object.Clearobject所在處代表一個對象表達式,其值為列表中的一個ListBox對象。例5-7(p102-3.vbp)用列
25、表框顯示1000到1100之間的素數(shù)Private Sub Comma nd1_Click()10091013101910211031103310391049按開始按鈕, 可以在文本框 中顯不所有從1000到1100之 間的素數(shù)Dim n As In tegerDim i As In teger, s As In tegerFor n = 1001 To 1100 Step 2s = 0For i = 2 To Sqr( n)If n Mod i = 0 The ns = 1Exit ForEnd IfNextIf s = 0 Then Listl.Addltem nNextEnd Sub例5
26、-8(p103-1.vbp)同構(gòu)數(shù)是一個整數(shù),它恰好出現(xiàn)在其平方的右端,例如5*5=25,25*25=125 ,即卩5和25都是同構(gòu)數(shù)。求10000以內(nèi)的同構(gòu)數(shù)11從1到9999 (for循環(huán))情況n (select選擇,n為測試表達式)n*2 mod 10輸出d, n*2n*2 mod 100輸出兒n*2n"2 mod 1000輸出叫iT2n2 mod 10000輸出n, rT21 位同構(gòu)數(shù) n: n=n*n mod 102 位同構(gòu)數(shù) n: n=n*n mod 1003 位同構(gòu)數(shù) n: n=n*n mod 10004 位同構(gòu)數(shù) n: n=n*n mod 10000 可以用for循環(huán)
27、中嵌套select選擇語句來實現(xiàn),流程如圖:Private Sub Comma nd1_Click()Dim n As LongFor n = 1 To 10000Select Case nCase n * n Mod 10List1.AddItem Format( n, ” ") & Format(n * n, ”)Case n * n Mod 100List1.AddItem Format( n, " ") & Format(n * n, "")Case n * n Mod 1000List1.AddItem Format(
28、 n, " ") & Format(n * n, "")Case n * n Mod 10000List1.AddItem Format( n, " ") & Format(n * n, "")152563625625765776376141376625390625J按開始按辺, 可以奩列表框 中顯S10000以 內(nèi)所有同構(gòu)數(shù)同構(gòu)數(shù)nn的平方End SelectNextEnd Sub例5-9算術練習程序(P104-1 .VBP )。出題部分由窗體的Activate事件過程實現(xiàn)Activate事件當一
29、個窗體對象成為活動窗口時發(fā)生。程序中用Forml.Tag來存放生成的題目數(shù)。答題部分通過文本框的KeyPress事件過程實現(xiàn)。程序中用Listl.Tag來存放完成 的題目數(shù)。注意:窗體設計時或初始化控件時必須把程序使用的Tag賦值為0,否則編譯時會報類型不匹配,因為Tag默認為字符串型。由于屬性 Tag是附加在各控件 的,在這里相當于窗體文件(模塊)級的變量,共窗體內(nèi)各過程共享.Private Sub Form_Load()初始化控件Labell.Captio n =""Label1.BackStyle = 1Label1.BackColor = QBColor(15)Te
30、xt1.Text =""Frame1.Captio n =""Label2.Captio n =""Label3.Captio n =""Command1.Caption =" 關閉(&C)"Image1.Picture = LoadPicture("D:notevbasicVB3EXAMPLEPOINT02.ICO")Form1.Tag = 0 '強制使Tag屬性為數(shù)值List1.Tag = 0End SubPrivate Sub Form_Activate
31、()'出題過程Dim a As In teger, b As In teger, p As In tegerRan domize (Time)a = In t(10 + 90 * Rnd)b = In t(10 + 90 * Rnd)p = Int(2 * Rnd)Select Case pCase 0Label1.Caption = a & "+" & b & "="Text1.Tag = a + bCase 1Label1.Capti on = a & "-" & b & &
32、quot;="Textl.Tag = a - bEnd SelectForml.Tag = Forml.Tag + 1Textl.SelStart = 0Textl.Text =""End SubPrivate Sub Text1_KeyPress(KeyAscii As In teger)'答題過程Dim frm As Strin g, item As StringIf KeyAscii = 13 The nfrm = ”!"If Val (T ext1.Text) = Text1.Tag The nitem = Format(Label1.C
33、aptio n & Text1.Text, frm) & " V"'生成一個列表項List1.Tag = List1.Tag + "1"Elseitem = Format(Label1.Caption & Text1.Text, frm) & " x "End IfList1.AddItem item, 0Label2.Caption ="共"& Form1.Tag & "題,"& Chr(13) & "正確率為:
34、"Label3.Capti on = Format(List1.Tag / Form1.Tag, "#0.0#%")Form_ActivateEnd IfEnd Sub選擇和移動數(shù)據(jù)例 5-10(P105-VBP)相互移動。注:listbox的style.Multiselect屬性只能在窗體設計時完成,在程序運行時是只 讀的,不能更改。本例中:List1.Style=1(帶復選框),List2.Multiselect=2(擴展復 選,即多項選擇),列表框的其它屬性都取默認值。Private Sub Form_Load()初始化控件Label1.Caption =&
35、quot;經(jīng)營商品"Label2.Caption ="需采購商品"Label3.Caption = "Ctrl或Shift+鼠標左鍵可以在右框中選擇多項數(shù)據(jù)”Command1.Caption =" 選項右移"Command2.Caption =" 全部右移"Command3.Caption =" 選項左移"Command4.Caption =" 全部左移"Listl.Addltem "電冰箱"Listl.Addltem "洗衣機"Lis
36、tl.Addltem "彩色電視機"Listl.Addltem "組合音響"Listl.Addltem "影碟機"Listl.Addltem "電水壺"Listl.Addltem "飲水機"Listl.Addltem "微波爐"Listl.Addltem "照相機"Listl.Addltem "計算機"Listl.Addltem "電話機"End SubPrivate Sub Comma nd1_Click()
37、9;選項右移Dim i As In tegeri = 0Do While i < List1.ListCo untIf List1.Selected(i) = True ThenList2.AddItem List1 丄 ist(i)List1.RemoveItem (i)Elsei = i + 1End IfLoopEnd SubPrivate Sub Comma nd2_Click()'全部右移Dim i As In tegerFor i = 0 To List1.ListCou nt - 1List2.AddItem (List1. List(i)NextList1.Cle
38、arEnd SubPrivate Sub Comma nd3_Click()'選項左移Dim i As In tegeri = 0Do While i < List2.ListCo untIf List2.Selected(i) = True The n List1.Addltem (List2.List(i) List2.RemoveItem (i)Elsei = i + 1End IfLoopEnd SubPrivate Sub Comma nd4_Click()'全部左移Dim i As In tegerFor i = 0 To List2 丄 istCou nt
39、- 1List1.AddItem (List2.List(i)NextList2.ClearEnd Sub542 組合框組合框控件將文本框和列表框的功能結(jié)合在一起。有了這個控件,用戶可通過 在組合框中輸入文本來選定項目,也可從列表中選定項目。組合框向用戶提供了供選擇的列表。如果項目數(shù)超過了組合框能夠顯示的項目 數(shù),控件上將自動出現(xiàn)滾動條。用戶即可上下或左右滾動列表。 此外,組合框節(jié)省了窗體的空間。組合框的樣式每種樣式都可在設計時或運行時來設置,而且每種樣式都Visual Basic常數(shù)來設置組合框的樣式(Style)。有三種組合框樣式。使用數(shù)值或相應的下拉式組合框簡單組合框vbComboDro
40、pDow nvbComboSimple下拉式列表框vbComboDropDow nList卜拉式組合框 Jx|旨oral重慶交通學院在缺省設置(Style = 0)下,組合框為下拉式組框 在屏幕上只顯示文本編輯框和一個下拉箭頭。用戶 可(象在文本框中一樣)直接輸入文本,也可單擊 組合框右側(cè)的附帶箭頭打開選項列表。選定某個選項后,將此選項插入到組合框頂端的文本部分中。當控件獲得焦點時,也可按ALT+ DOWN ARROW 鍵打開列表。西"財e華I回田重慶交通學院 mi簡單組合框(Style = 1 )將組合框Style屬性 設置為1將指定一個簡單的組合框,任何時候 都在其內(nèi)顯示列表。I
41、重慶商學院為顯示列表框部分,必須將列表框繪制得足夠 大。當選項數(shù)超過可顯示的限度時將自動插入 一個垂直滾動條。用戶可直接輸入文本,也可從 列表中選擇。象下拉式組合框一樣,簡單組合框也允許用戶輸入那些不在列表 中的選項。下拉式列表框(Style = 2 )下拉式列表框(Style = 2 )與正規(guī)列表框相似一它顯示項目的列表,用戶必須從中選擇。但下拉式列表框與列表框的不同之處在于,除非單擊框右側(cè)的箭頭,否則不顯示列表。這種列表框 與下拉式組合框的主要差別在于,用戶不能在列 表框中輸入選項,而只能在列表中選擇。當窗體 上的空間較少時,可使用這種類型的列表框。例(P107-1.VBP) ComboB
42、ox 的三種形式Private Sub Form_Load()Combo3.Text ="組合框樣式0"Combo2.Text ="組合框樣式1"'Combol.Text ="組合框樣式2"End Sub注:過程中最后一句編譯不能通過,因為下拉列表框的文本框部分是只讀的, 不能寫入新的數(shù)據(jù)項。注意:當組合框的樣式為0或1,即為下拉式組合框和簡單組合框時,在它的 列表框中選擇的數(shù)據(jù)項,會立即在它的文本框中顯示出來,在它的文本框中輸入的數(shù)據(jù),可以用語句:組合框名.Addltem 組合框名.Text,index添加到它的列表框中。下
43、拉列表框Style=2例5-11(P108-1.VBP)前面算術練習程序中的列表框改為組合框,在窗體設計 時,設置Style=2(DropdownList,下拉列表框),并增加一個重置按鈕,可重復 練習。Private Sub Form_Load()'初始化控件Label1.Captio n =""Label1.BackStyle = 1Label1.BackColor = QBColor(15)Text1.Text =""Frame1.Captio n =""Label2.Captio n =""Labe
44、l3.Captio n =""Command1.Caption =" 關閉(&C)"Command2.Caption =" 重置(&R)"Image1.Picture =LoadPicture("D:notevbasicVB3EXAMPLEPOINT02.lCO")Form1.Tag = 0 '強制使Tag屬性為數(shù)值Combo1.Tag = 0End Sub Foral重置(B)關閉(C)Private Sub Form_Activate()'出題過程Dim a As Integer
45、, b As Integer, p As IntegerRandomize (Time)a = Int(10 + 90 * Rnd)b = Int(10 + 90 * Rnd)p = Int(2 * Rnd)Select Case pCase 0Label1.Caption = a & "+" & b & "=" Text1.Tag = a + bCase 1 Label1.Caption = a & "-" & b & "="Text1.Tag = a - bEnd
46、 SelectForm1.Tag = Form1.Tag + 1Text1.SelStart = 0Text1.Text = ""End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer) 答題過程 Dim frm As String, item As StringIf KeyAscii = 13 Thenfrm = "!"生成一個列表項正確率為: "If Val(Text1.Text) = Text1.Tag Thenitem = Format(Label1.Capti on & Te
47、xtl.Text, frm) & " V Combo1.Tag = Combo1.Tag + 1Elseitem = Format(Label1.Capti on & Textl.Text, frm) & " x End IfCombo1.AddItem item, 0Combo1.ListIndex = 0Label2.Caption = " 共" & Form1.Tag & " 題," & Chr(13) & "Label3.Caption = Format(Com
48、bo1.Tag / Form1.Tag, "#0.0#%") Form_ActivateEnd IfEnd SubPrivate Sub Command2_Click() 重置過程Forml.Tag = 0Combol.Tag = 0Combol.ClearLabel3.Caption ="歡迎重新開始!"Label2.Captio n =""Form_ActivateTextl.SetFocusEnd SubPrivate Sub Comma nd1_Click()Un load Me簡單組合框Style=1End Sub例5-12(P109-1.VBP)簡易抽獎機使用簡單組合框,在窗體設計時設置Style=1(Simple Combo)Private Sub Form_Load() 初始控件Frame1.Caption = ”請輸入?yún)⒓映楠劦奶柎a”Label1.Caption ="輸入所有抽獎號碼后,按開始按鈕,將得到中獎號碼Comma nd1.Captio n =" 開始"Command2.Caption = ”自動生成抽
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 居住小區(qū)道路建設物業(yè)合同
- 商場電梯安全使用合同
- 農(nóng)村基礎設施招投標開標流程
- 書法用品租賃合同
- 屋頂修復快速施工合同
- 專題01 一元二次方程(5大基礎題+4大提升題)(解析版)-2024-2025學年九年級數(shù)學上學期期中真題分類匯編
- 拆除工程爆破拆除
- 電視臺內(nèi)部貼壁紙施工合同
- 家電企業(yè)區(qū)域銷售經(jīng)理招聘協(xié)議
- 城市橋梁建設基礎設施施工合同
- 危貨運輸車輛掛靠協(xié)議
- 加快推進涉外法治建設
- 綠色供應鏈管理企業(yè)一般要求符合性評價表
- 中航集團招聘筆試題庫2024
- 某系統(tǒng)安防工程施工組織設計方案
- 2024年7月13日云南省昆明市直遴選筆試真題及解析綜合管理崗
- 《明朝的統(tǒng)治》(2016年人教版)
- 2024年浙江省寧波市文史研究館辦公室招聘6人歷年(高頻重點復習提升訓練)共500題附帶答案詳解
- 個人信息安全保護管理規(guī)定
- 野生菌訂購合同范本
- 代持股權質(zhì)押協(xié)議
評論
0/150
提交評論