版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第3章 VB程序設(shè)計(jì)初步3.1 程序設(shè)計(jì)方法的發(fā)展3.2 窗體和基本控件3.3 數(shù)據(jù)的輸入輸出3.4 應(yīng)用舉例3.1程序設(shè)計(jì)方法的發(fā)展 隨著計(jì)算機(jī)軟、硬件技術(shù)的不斷發(fā)展,出現(xiàn)了許許多多的程序設(shè)計(jì)語(yǔ)言,程序設(shè)計(jì)方法也得到不斷發(fā)展,經(jīng)歷一個(gè)由低級(jí)到高級(jí),由復(fù)雜到簡(jiǎn)單的過程。3.1.1 結(jié)構(gòu)化程序設(shè)計(jì) 結(jié)構(gòu)化程序包括三種結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。順序結(jié)構(gòu)是最簡(jiǎn)單的結(jié)構(gòu),程序按照命令的編寫順序執(zhí)行。分支結(jié)構(gòu)是根據(jù)條件取值的不同,分別執(zhí)行不同的分支,也稱為選擇結(jié)構(gòu)。循環(huán)結(jié)構(gòu)是指在一定的條件下,重復(fù)執(zhí)行一個(gè)程序段的結(jié)構(gòu)。結(jié)構(gòu)化程序設(shè)計(jì)的特點(diǎn)是:(1)自頂向下,逐步求精。(2)模塊化。根據(jù)完成的功
2、能,將程序劃分為相對(duì)獨(dú)立的若干模塊。模塊之間關(guān)系簡(jiǎn)單、獨(dú)立。(3)每一模塊均是由三種結(jié)構(gòu)組成的,模塊化的實(shí)現(xiàn)的具體方法是子程序。3.1.2 面向?qū)ο蟪绦蛟O(shè)計(jì)隨著計(jì)算機(jī)軟件技術(shù)的發(fā)展,傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)思想越來越不能適應(yīng)軟件開發(fā)工作的需要。80年代提出了面向?qū)ο蟮某绦蛟O(shè)計(jì)。面向?qū)ο蟪绦蛟O(shè)計(jì)的出發(fā)點(diǎn)和追求的基本目標(biāo),是使人們認(rèn)識(shí)系統(tǒng)的方法于設(shè)計(jì)和實(shí)現(xiàn)這個(gè)系統(tǒng)的方法盡可能接近,也就是使描述問題的問題空間和解決問題的方法空間在結(jié)構(gòu)上盡可能一致?;痉椒ㄊ牵簩?duì)問題空間進(jìn)行自然分割,對(duì)客觀事物進(jìn)行結(jié)構(gòu)模擬,建立問題域模型,從而使設(shè)計(jì)出的軟件盡可能直接地描述現(xiàn)實(shí)世界,構(gòu)造出模塊化的、可重用的、維護(hù)性好的軟
3、件,從而降低軟件的復(fù)雜性、提高軟件開發(fā)效率并減少開發(fā)維護(hù)的費(fèi)用。面向?qū)ο蠓椒ǖ娜齻€(gè)核心:(1)封裝 (2)繼承 (3)多態(tài)性3.1.3 一個(gè)VB可視化編程簡(jiǎn)單實(shí)例設(shè)計(jì)一個(gè)窗口,當(dāng)用戶單擊“顯示”按鈕時(shí),窗口中顯示“VB歡迎你”,單擊“退出”按鈕結(jié)束程序。根據(jù)前面講的開發(fā)步驟:首先,根據(jù)程序要求的功能,考慮程序中要用到哪些控件。最好先畫出一個(gè)草圖,然后開始設(shè)計(jì)程序界面。啟動(dòng)Visual Basic,在自動(dòng)出現(xiàn)的窗體Form1中加入一個(gè)文本框(Text1)和兩個(gè)命令按鈕(Command1和Command2)。其次,設(shè)置窗體和控件的初始屬性。可用鼠標(biāo)調(diào)整一下窗體、文本框和命令按鈕的大小和位置,以使界
4、面美觀。對(duì)于文本框,先將其Text屬性設(shè)置為空。對(duì)兩個(gè)命令按鈕,將它們的Caption屬性分別設(shè)置為“顯示”和“退出”。然后分別編寫兩個(gè)命令按鈕的事件代碼。代碼如下:(1)“顯示”按鈕(Command1)的事件代碼:Private Sub Command1_Click()Text1.FontName = 楷體_GB2312 Text1.FontSize = 15 設(shè)置文本框中的字體格式text1.Text=VB歡迎你! 更改文本框的Text屬性顯示要得到的內(nèi)容End Sub(2)“退出”按鈕(Command2)的事件代碼:Private Sub Command2_Click()End 退出程序
5、End Sub最后,運(yùn)行程序,檢查程序的功能是否符合要求。如果不符合或運(yùn)行出錯(cuò),再修改調(diào)試直到運(yùn)行成功。3.2窗體和基本控件3.2.1窗體對(duì)象介紹窗體對(duì)象介紹控制按鈕工作區(qū)標(biāo)題欄3.2.1.1 窗體的常見屬性窗體的常見屬性(1)Name屬性:窗體的名稱,用于在程序中唯一的標(biāo)識(shí)窗體。在程序中每添加一個(gè)新窗體時(shí),系統(tǒng)會(huì)自動(dòng)給其一個(gè)默認(rèn)的名稱FormX。(2)Caption屬性:窗體的標(biāo)題,即顯示在標(biāo)題欄內(nèi)控制圖標(biāo)右面的標(biāo)題,用來向用戶說明窗體的作用。系統(tǒng)默認(rèn)為Form1。注意對(duì)象的Name屬性和Caption屬性的區(qū)別:Name是對(duì)象的名字,是計(jì)算機(jī)用來區(qū)分各個(gè)對(duì)象的;Caption是顯示在對(duì)象上
6、的內(nèi)容,是向用戶說明各個(gè)對(duì)象的作用的。如例3.1中的“顯示”按鈕,它的Name為Command1,而Caption為“顯示”。 (3)Appearance屬性:設(shè)置窗體在運(yùn)行時(shí)是否以立體的效果顯示。0表示以平面的形式顯示,1表示以3D的立體效果顯示。(4)AutoRedraw屬性:設(shè)置窗體是否具有自動(dòng)重畫的功能。若將該屬性設(shè)為True,則當(dāng)窗體被其他窗體覆蓋又回到該窗體,或窗體的大小發(fā)生改變時(shí),會(huì)自動(dòng)刷新顯示在窗體上的圖形和文本。(5)BackColor屬性:設(shè)置窗體的背景顏色。設(shè)置該屬性時(shí),可以通過打開的調(diào)色板選取適當(dāng)?shù)念伾?。?)BorderStyle屬性:設(shè)置窗體的邊框樣式。該屬性值可以
7、為05。0表示無(wú)邊框;1表示窗體大小固定且具有單線邊框;2(默認(rèn)值)表示窗體具有大小可調(diào)整的邊框;3表示窗體具有大小固定的邊框;4表示窗體為單線固定工具窗口,且只包含關(guān)閉按鈕;5表示窗體為可調(diào)整的工具窗口,且只包含關(guān)閉按鈕。設(shè)計(jì)者可以根據(jù)需要選擇窗體相應(yīng)的樣式。(7)Enabled屬性:每個(gè)對(duì)象都具有Enabled屬性,用來設(shè)置對(duì)象是否可以被用戶激活,即對(duì)象是否接受并響應(yīng)用戶事件。若該屬性設(shè)置為False,則對(duì)象一般呈暗淡顯示,說明用戶不可使用該對(duì)象。這個(gè)屬性通常用來在程序運(yùn)行時(shí)控制對(duì)象是否達(dá)到可以使用的條件。(8)Visible屬性:該屬性是用于設(shè)置對(duì)象在程序運(yùn)行時(shí)是否可見。若該屬性為Tru
8、e,則對(duì)象顯示在屏幕上,若該屬性為False,則對(duì)象隱藏起來,不在屏幕上顯示。(9)Movable屬性:布爾值,設(shè)置程序運(yùn)行時(shí)窗體是否可以被用戶改變位置。(10)MaxButton、MinButton屬性:布爾值,設(shè)置窗體的標(biāo)題欄中是否具有最大化最小化按鈕。(11)ContrlBox屬性:設(shè)置窗體是否具有關(guān)閉功能。若該屬性為True,則窗體中存在關(guān)閉按鈕,可以被用戶關(guān)閉,并且用鼠標(biāo)單擊控制圖標(biāo)也可以打開控制菜單;若該屬性為False,則窗體中不存在關(guān)閉按鈕和控制菜單。(12)ForeColor屬性:設(shè)置窗體的前景色。窗體中輸出的文本按照窗體的前景色輸出。(13)Font屬性:設(shè)置窗體中輸出的字
9、符的特征,包括字體、字型、大小等。(14)WindowState屬性:設(shè)置窗體運(yùn)行時(shí)的初始狀態(tài)。該屬性值可以為02的一個(gè)整數(shù)。0:正常狀態(tài)。運(yùn)行后窗體的大小以設(shè)計(jì)階段為準(zhǔn)。1:最小化狀態(tài)。運(yùn)行后窗體縮小為一個(gè)圖標(biāo)顯示在任務(wù)欄中。2:最大化狀態(tài)。運(yùn)行后窗體充滿整個(gè)屏幕。(15)StartUpPosition屬性:用于控制窗體首次顯示時(shí)的位置。該屬性值可以為03的一個(gè)整數(shù)。0:窗體的初始位置由其Left和Top屬性決定。1:窗體顯示在屏幕中央,若是MDI窗體,則顯示在其父窗體的中央。2:窗體顯示在屏幕中央。3:窗體顯示在屏幕的左上角。(16)Left、Top、Height、Width屬性:所有的對(duì)
10、象都具有以上四個(gè)屬性,用來確定對(duì)象的大小和位置,這些屬性值都是整數(shù)。 3.2.1.2 窗體的事件窗體的事件(1)Click(單擊)事件:?jiǎn)螕羰录菐缀趺總€(gè)對(duì)象都具有的事件,當(dāng)用戶在一個(gè)對(duì)象上按下并釋放鼠標(biāo)按鈕時(shí)發(fā)生。對(duì)窗體而言,當(dāng)在窗口內(nèi)沒有其他控件的任何位置單擊鼠標(biāo)時(shí),就會(huì)觸發(fā)窗體的Click事件。(2)DblClick(雙擊)事件:對(duì)象的雙擊事件,也是大多數(shù)對(duì)象都具有的一個(gè)事件。當(dāng)用戶在一個(gè)對(duì)象上雙擊鼠標(biāo)時(shí)發(fā)生。(3)Activate事件:窗體的激活事件。在窗口由非活動(dòng)窗口變?yōu)榛顒?dòng)窗口時(shí)的瞬間發(fā)生,窗口一旦成為活動(dòng)窗口,該事件就會(huì)消失。(4)Deactivate事件:與Activate事件
11、相對(duì),在窗口由活動(dòng)窗口變?yōu)榉腔顒?dòng)窗口時(shí)的瞬間發(fā)生。(5)Load事件:窗體的加載事件,當(dāng)窗體被調(diào)入內(nèi)存并顯示在屏幕上時(shí)發(fā)生。每執(zhí)行一個(gè)應(yīng)用程序,在屏幕上都會(huì)至少打開一個(gè)窗口,所以,該事件是執(zhí)行應(yīng)用程序時(shí)發(fā)生時(shí)間較早的一個(gè)事件,因此,在這個(gè)事件中通常加入一些在程序執(zhí)行之前,對(duì)程序中用到的對(duì)象或變量等進(jìn)行初始化的語(yǔ)句。(6)MouseDown事件:當(dāng)用戶在對(duì)象上按下鼠標(biāo)按鈕時(shí)發(fā)生。在這個(gè)事件中,可以通過判斷用戶按下的是左鍵還是右鍵而做出不同的事件處理。(7)Resize事件:當(dāng)窗體第一次顯示或用戶改變窗體的大小時(shí)會(huì)觸發(fā)這個(gè)事件的發(fā)生。(8)Unload事件:當(dāng)窗體被關(guān)閉而從屏幕上消失時(shí)發(fā)生。3.2
12、.1.3 窗體的常見方法和語(yǔ)句窗體的常見方法和語(yǔ)句(1)Load語(yǔ)句:該語(yǔ)句用來將新創(chuàng)建的窗體加載到內(nèi)存中 Load 窗體名(2)Show方法:用來將一個(gè)已經(jīng)裝入內(nèi)存的窗體顯示出來。其語(yǔ)法如下:.Show 其中“模式”參數(shù)有兩種取值:0(默認(rèn)值)表示非?;拇绑w, 1表示?;拇绑w。?;拇绑w是指該窗口出現(xiàn)后,用戶必須對(duì)其作出響應(yīng),否則不能進(jìn)行其他任何操作的窗口。這種窗口經(jīng)常用在一些對(duì)話框窗口上。(3)Hide方法:用于隱藏顯示在屏幕上的窗體。隱藏窗體時(shí),用戶將無(wú)法訪問該窗體上的控件,但是運(yùn)行中的VB應(yīng)用程序并不卸載它,仍然可以使用語(yǔ)句訪問隱藏窗體上的控件。其語(yǔ)法為: . Hide(4)Unl
13、oad語(yǔ)句用來卸載窗體。在窗體被卸載以后,所有在運(yùn)行時(shí)放到該窗體上的控件都不再是可訪問的,在設(shè)計(jì)時(shí)放到該窗體上的控件將保持不變。其語(yǔ)法如下:Unload (5)Cls方法:用于清除在窗體上顯示的文本,并把光標(biāo)重新定位到窗體的左上角。其語(yǔ)法為: .Cls3.2.2 命令按鈕(命令按鈕(CommandButton)命令按鈕是應(yīng)用程序中最為常用的控件之一,其主要功能是用來執(zhí)行某一功能 3.2.2.1 命令按鈕的常用屬性命令按鈕的常用屬性(1)Caption屬性:該屬性用來設(shè)置顯示在命令按鈕上的標(biāo)題,也就是命令按鈕上方出現(xiàn)的文本。設(shè)置帶有快捷鍵的命令按鈕的Caption屬性時(shí)在相應(yīng)的字母前加上“&am
14、p;”符號(hào),例如:要得到 的命令按鈕,則應(yīng)將其Caption屬性設(shè)置為“確定(&Ok)”。 (2)Default屬性和Cancel屬性 :用來設(shè)置窗體中哪一個(gè)命令按鈕是默認(rèn)命令按鈕和默認(rèn)取消按鈕,其值為False或True。注意,在同一窗體上只能有一個(gè)命令按鈕的Default屬性和Cancel屬性被設(shè)定為True。(3)Enabled屬性:設(shè)置命令按鈕是否能被按下。(4)Style屬性:設(shè)置命令按鈕的外觀樣式。0Standard(缺?。畎粹o顯示為標(biāo)準(zhǔn)樣式,不能在其中顯示圖形或設(shè)置顏色;1Graphical,圖形樣式,在命令按鈕上可以顯示圖形或設(shè)置顏色。(5)Picture屬性:通
15、過該屬性可以指定一個(gè)圖形文件用來在命令按鈕上顯示該文件所對(duì)應(yīng)的圖形。要在命令按鈕上顯示圖形,有效的前提是Style屬性為1。(6)Value屬性:該屬性設(shè)置為True時(shí)表示按鈕被按下。該屬性只能在程序運(yùn)行期間使用。3.2.2.2 命令按鈕的常見事件命令按鈕的常見事件當(dāng)單擊命令按鈕時(shí),通??梢詥?dòng)啟動(dòng)一段程序,執(zhí)行某項(xiàng)功能,所以命令按鈕最常用的事件是Click(單擊)事件。當(dāng)用鼠標(biāo)左鍵單擊命令按鈕時(shí),會(huì)觸發(fā)該事件的產(chǎn)生??梢栽谠撌录芯帉懘a來處理相應(yīng)的任務(wù)。其語(yǔ)法為:Private Sub CommandButtonname_Click()事件過程代碼End Sub除此以外,命令按鈕還可以接受
16、很多事件,如:鼠標(biāo)按下(MouseDown)事件、鼠標(biāo)抬起(MouseUp)事件、鍵盤按下(KeyDown)或松開(KeyUp)事件等。3.2.2.2 命令按鈕的常用方法命令按鈕的常用方法命令按鈕的常用方法是SetFocus方法,使用該方法可以將焦點(diǎn)定位在指定的命令按鈕上。其格式為: .SetFocus焦點(diǎn)表示了控件接收用戶鼠標(biāo)或鍵盤輸入的能力。當(dāng)對(duì)象具有焦點(diǎn)時(shí),可以接收用戶的輸入。 3.2.3 標(biāo)簽和文本框控件標(biāo)簽和文本框控件標(biāo)簽和文本框都是用來在程序中顯示文本信息的控件。但它們?cè)陲@示文本時(shí)的功能存在區(qū)別:在標(biāo)簽中只能顯示字符文本,并且顯示的文本不能被用戶進(jìn)行編輯,我們通常把這種文本稱之為靜
17、態(tài)文本;而文本框不但可以顯示文本,并且允許用戶對(duì)顯示的文本進(jìn)行各種編輯操作,所以,用戶也可以利用文本框進(jìn)行字符信息的輸入。3.2.3.1 標(biāo)簽(標(biāo)簽(Label)標(biāo)簽3.2.3.1.1 標(biāo)簽的常見屬性標(biāo)簽的常見屬性(1)Caption屬性:標(biāo)簽的標(biāo)題。標(biāo)簽中顯示的文本只能用Caption屬性來實(shí)現(xiàn)。(2)Alignment屬性設(shè)置標(biāo)簽中標(biāo)題的對(duì)齊方式。0(缺省)標(biāo)題在標(biāo)簽中左對(duì)齊;1右對(duì)齊;2居中。(3)AutoSize屬性設(shè)置標(biāo)簽是否能夠根據(jù)其中的標(biāo)題自動(dòng)調(diào)整大小。設(shè)置為True時(shí),標(biāo)簽可根據(jù)其中的標(biāo)題自動(dòng)調(diào)整大小以把所有的文本都顯示出來;設(shè)置為False(缺省)時(shí),不論標(biāo)題有多少,標(biāo)簽保持
18、設(shè)計(jì)時(shí)定義的大小,超出的部分不能顯示。(4)BorderStyle屬性設(shè)置標(biāo)簽是否具有邊框。0(缺?。o(wú)邊框;1有邊框。(5)BackStyle屬性設(shè)置背景樣式。0標(biāo)簽透明;1標(biāo)簽不透明。(6)WordWrap屬性布爾值。設(shè)置為True時(shí),標(biāo)簽可以在垂直方向上變化大小以和標(biāo)題相適應(yīng),但前提條件必須使AutoSize的值為True;設(shè)置為False時(shí),標(biāo)簽不能在垂直方向上變化。3.2.3.1.1 標(biāo)簽的事件和方法標(biāo)簽的事件和方法標(biāo)簽可以接收Click和DblClick事件。但是,在實(shí)際應(yīng)用中,標(biāo)簽通常是給其他控件用作說明的,用戶很少對(duì)標(biāo)簽進(jìn)行任何操作,所以,標(biāo)簽的事件很少用到。標(biāo)簽控件支持Mov
19、e方法,用于實(shí)現(xiàn)標(biāo)簽的位置移動(dòng)和大小變換。Move方法的格式如下: . Move , , , 其中,指示對(duì)象左邊的水平坐標(biāo);指示對(duì)象頂邊的垂直坐標(biāo);和指示對(duì)象新的寬度和高度。使用Move方法可以修改對(duì)象的left和top屬性,從而實(shí)現(xiàn)對(duì)象位置上的改變。另外,使用該方法還可以重新設(shè)定對(duì)象的width和height的屬性值,所以,該方法也可以用來改變對(duì)象的大小。很多對(duì)象都支持Move方法。如窗體、命令按鈕等。3.2.3.1 文本框(文本框(Text)文本框除了用于顯示輸出信息之外,還可以使用文本框作為輸入控件,在運(yùn)行時(shí)接收用戶輸入的數(shù)據(jù)。3.2.3.1 文本框的常見屬性文本框的常見屬性(1)Tex
20、t屬性:字符串類型。返回或設(shè)置文本框中顯示的內(nèi)容。(2)MaxLength屬性:設(shè)置文本框中用戶可以輸入的字符串長(zhǎng)度是否有受到限制。缺省值為0,表示該文本框中字符串長(zhǎng)度只受操作系統(tǒng)內(nèi)存的限制;若該屬性被設(shè)置為大于0的整數(shù),則表示文本框中能夠輸入的最大字符數(shù)。(3)MultiLine屬性:設(shè)置文本框是單行方式還是多行方式,有True和False兩種屬性值。設(shè)置為True時(shí)文本框以多行文本方式顯示文本,一行顯示不下的內(nèi)容會(huì)自動(dòng)換到下行顯示;否則,以單行方式顯示,超出文本框?qū)挾鹊牟糠謺?huì)被截掉。(4)PasswordChar屬性:該屬性用來設(shè)置是否在控件中顯示用戶鍵入的實(shí)際字符。如果為該屬性設(shè)置了某一
21、字符,那么無(wú)論Text屬性值是什么,在文本框中都只顯示該字符。注意:要想使該屬性有效,MultiLine屬性必須設(shè)置為False。(5)ScrollBars屬性:設(shè)置文本框是否具有垂直或水平滾動(dòng)條。0(缺省)表示沒有滾動(dòng)條;1有水平滾動(dòng)條;2有垂直滾動(dòng)條;3既有水平滾動(dòng)條又有垂直滾動(dòng)條。注意:設(shè)置為1、2或3時(shí)有效的前提是MultiLine屬性必須設(shè)置為True。(6)MousePointer屬性:該屬性設(shè)置鼠標(biāo)經(jīng)過文本框時(shí)指針的類型,共有16種指針類型可供選擇。(7)Locked屬性:設(shè)置程序運(yùn)行時(shí)文本框中的內(nèi)容是否可以被用戶編輯。默認(rèn)值為False,表示可以被用戶編輯。3.2.3.1 文本
22、框的事件和方法文本框的事件和方法(1)Change事件:當(dāng)用戶向文本框中輸入新的文本,或在程序中對(duì)文本框的Text屬性進(jìn)行更改時(shí),將觸發(fā)其Change事件。(2)GotFocus事件:對(duì)象獲得焦點(diǎn)事件。當(dāng)運(yùn)行程序時(shí)用Tab鍵或用鼠標(biāo)選擇對(duì)象,或用SetFocus方法使光標(biāo)定位在對(duì)象上時(shí),會(huì)觸發(fā)該事件。(3)LostFocus事件:對(duì)象失去焦點(diǎn)事件。當(dāng)按下Tab鍵或用鼠標(biāo)選擇其他對(duì)象使光標(biāo)離開當(dāng)前對(duì)象時(shí)觸發(fā)該事件。(4)KeyPress事件:當(dāng)焦點(diǎn)在當(dāng)前文本框中,在鍵盤上按下某個(gè)按鍵則觸發(fā)該對(duì)象的KeyPress事件。該事件返回一個(gè)參數(shù)KeyAscii,表示所按下的鍵的ASCII碼。(5)Set
23、Focus方法:與命令按鈕一樣,該方法是將光標(biāo)移動(dòng)到指定的文本框中,使其獲得焦點(diǎn)。這是文本框比較常用的方法,當(dāng)在窗體中建立了多個(gè)文本框后,可以使用該方法把光標(biāo)置于所需要的文本框上。3.3數(shù)據(jù)的輸入輸出3.3.1 數(shù)據(jù)的輸入數(shù)據(jù)的輸入3.3.1.1使用文本框控件輸入數(shù)據(jù)使用文本框控件輸入數(shù)據(jù) 文本框除了可以顯示文本信息以外,還可以接收用戶輸入的數(shù)據(jù),所以可以使用文本框來實(shí)現(xiàn)數(shù)據(jù)的輸入。當(dāng)在窗體上加入一個(gè)文本框后,程序執(zhí)行時(shí)用戶可以在文本框中光標(biāo)的指示下輸入字符,用戶輸入的字符通過文本框的Text屬性返回。 3.3.1.2使用輸入框(使用輸入框(InputBox)函數(shù)輸入數(shù)據(jù))函數(shù)輸入數(shù)據(jù)VB另外
24、提供了一個(gè)輸入框函數(shù)InputBox函數(shù),可以在程序中要輸入數(shù)據(jù)的地方使用該函數(shù)產(chǎn)生一個(gè)輸入對(duì)話框,這樣,只需要一行代碼就可以實(shí)現(xiàn)輸入窗體的功能,節(jié)省了大量開發(fā)時(shí)間。InputBox函數(shù)的語(yǔ)法格式為:InputBox(,)該函數(shù)的功能是產(chǎn)生一個(gè)對(duì)話框,作為輸入數(shù)據(jù)的界面,等待用戶輸入并返回所輸入的內(nèi)容。 表3-1 InputBox函數(shù)的參數(shù)參數(shù)說明提示信息字符串表達(dá)式,在對(duì)話框內(nèi)顯示提示信息,提示用戶輸入數(shù)據(jù)的格式、作用等。如果包含多行,可以在各行之間用回車符Chr(13)、換行符Chr(10)或回車換行符的組合Chr(13)&Chr(10)來分隔。對(duì)話框標(biāo)題字符串表達(dá)式,顯示在標(biāo)題欄
25、中作為對(duì)話框的標(biāo)題。缺省為當(dāng)前工程的名字。默認(rèn)值字符串表達(dá)式,顯示在對(duì)話框的文本框中,在沒有其他輸入時(shí)作為默認(rèn)輸入值使用。缺省為空。X數(shù)值表達(dá)式,指定對(duì)話框左邊與屏幕左邊的水平距離。如果省略,對(duì)話框在水平方向居中Y數(shù)值表達(dá)式,指定對(duì)話框上邊與屏幕上邊的垂直距離。如果省略,對(duì)話框在屏幕垂直方向距下邊1/3的位置顯示。3.3.2 賦值語(yǔ)句賦值語(yǔ)句賦值語(yǔ)句是程序設(shè)計(jì)中最基本的語(yǔ)句,它不但可以將指定的值賦給某個(gè)變量,而且還可以將指定的屬性值賦給某個(gè)帶有屬性的對(duì)象。賦值語(yǔ)句的格式:格式1:變量名=表達(dá)式格式2:對(duì)象名.屬性名=表達(dá)式(在格式2中,若對(duì)象名省略,則默認(rèn)對(duì)象為當(dāng)前窗體。)功能:把“=”右邊表
26、達(dá)式的值賦給“=”左邊的變量或?qū)ο蟮膶傩?。賦值語(yǔ)句兼有計(jì)算和賦值的雙重功能,它首先計(jì)算賦值號(hào)右邊的值,然后把結(jié)果賦給左邊的變量或?qū)ο蟮膶傩?。利用賦值語(yǔ)句在給對(duì)象的屬性賦值時(shí),必須十分清楚該屬性值的類型,將類型相容的數(shù)據(jù)賦給它,否則將會(huì)產(chǎn)生錯(cuò)誤。 3.3.3 數(shù)據(jù)的輸出數(shù)據(jù)的輸出3.3.3.1用用Print方法輸出數(shù)據(jù)方法輸出數(shù)據(jù)Print方法可以在窗體、圖片框、打印機(jī)等對(duì)象上輸出數(shù)據(jù)。其格式為:. Print ;|,其中,可以是窗體、圖片框或打印機(jī)等可以使用該方法的對(duì)象。如果省略對(duì)象,則在當(dāng)前窗體上輸出數(shù)據(jù)。中的表達(dá)式是要輸出的輸出項(xiàng),可以是算術(shù)表達(dá)式、字符串表達(dá)式、關(guān)系表達(dá)式或布爾表達(dá)式,多
27、個(gè)表達(dá)式之間可以用逗號(hào)或分號(hào)隔開。3.3.3.2用文本框和標(biāo)簽控件輸出數(shù)據(jù)用文本框和標(biāo)簽控件輸出數(shù)據(jù)前面介紹了文本框和標(biāo)簽的功能,它們都可以用來顯示文本信息,所以可以把要輸出的數(shù)據(jù)以字符的形式在文本框或標(biāo)簽中顯示出來。文本框和標(biāo)簽在輸出數(shù)據(jù)時(shí)的區(qū)別在于使用文本框輸出的文本可以允許用戶進(jìn)行編輯,而使用標(biāo)簽顯示的文本用戶不能進(jìn)行任何的編輯操作。文本框的Text屬性和標(biāo)簽的Caption屬性分別用來表示要在其中顯示的文本內(nèi)容,所以,要在文本框或標(biāo)簽中顯示文本,只需要把要顯示的內(nèi)容賦給它們相應(yīng)的屬性即可。3.3.3.3用消息框(用消息框(MsgBox)輸出數(shù)據(jù))輸出數(shù)據(jù)消息框是一類特殊的窗口。VB中提
28、供了一個(gè)函數(shù)MsgBox,專門用來產(chǎn)生消息框,它可以向用戶傳送信息,并可以通過用戶在對(duì)話框上的選擇識(shí)別用戶所作的響應(yīng),作為程序繼續(xù)執(zhí)行的依據(jù)。使用MsgBox函數(shù),可以快速的得到各類對(duì)話框。1. MsgBox 函數(shù)格式:MsgBox(, ,功能:產(chǎn)生一個(gè)對(duì)話框,在對(duì)話框中顯示消息,等待用戶單擊按鈕,并返回一個(gè)整數(shù)確定用戶單擊了哪個(gè)按鈕。該函數(shù)的參數(shù)含義說明如下:(1):字符串表達(dá)式,該字符串的內(nèi)容將在由MesgBox函數(shù)產(chǎn)生的對(duì)話框上顯示,作為系統(tǒng)提示信息。該字符串的長(zhǎng)度不能超過1024個(gè)字符,如果超過,則多余的字符被截掉。當(dāng)字符串在一行內(nèi)顯示不下時(shí),將自動(dòng)換行,也可以用“Chr$(13)+C
29、hr$(10)”強(qiáng)制換行。分類按鈕值系統(tǒng)符號(hào)常量含義按鈕類型0VbOKOnly只顯示“確定”按鈕1VbOKCancel顯示“確定”及“取消”按鈕2VbAbortRetrylgnore顯示“終止”、“重試”和“忽略”按鈕3VbYesNoCancel顯示“是”、“否”和“取消”按鈕4VbYesNo顯示“是”、“否”按鈕5VbRetryCancel顯示“重試”、“取消”按鈕圖標(biāo)類型16VbCritical顯示Critical Message圖標(biāo)32VbQuestion顯示W(wǎng)arning Query圖標(biāo)?48VbExclamation顯示W(wǎng)arning Message圖標(biāo)!64VbInformatio
30、n顯示Information Message圖標(biāo)默認(rèn)按鈕0VbDefaultButton1第一個(gè)按鈕是默認(rèn)值256VbDefaultButton2第二個(gè)按鈕是默認(rèn)值512VbDefaultButton3第三個(gè)按鈕是默認(rèn)值768VbDefaultButton4第四個(gè)按鈕是默認(rèn)值強(qiáng)制返回類型0VbApplication應(yīng)用程序強(qiáng)制返回:應(yīng)用程序一直被掛起,直到用戶對(duì)消息框做出響應(yīng)才繼續(xù)工作(2) “按鈕類型”的設(shè)置值及含義參數(shù)由上面四類數(shù)值組成,其組成原則是:從每一類中選擇一個(gè)值,把這幾個(gè)值加在一起就是該參數(shù)的值。不同的組合會(huì)得到不同的結(jié)果。(3):字符串,顯示在對(duì)話框的標(biāo)題欄中作為標(biāo)題。(4)M
31、sgBox函數(shù)的返回值是一個(gè)整數(shù),這個(gè)整數(shù)與所選擇的命令按鈕有關(guān),可以通過返回的這個(gè)整數(shù)的數(shù)值確定用戶在對(duì)話框中單擊的是哪個(gè)按鈕,即用戶在對(duì)話框中作出了什么響應(yīng)。 返回值按下的按鈕系統(tǒng)符號(hào)變量1確定VkOk2取消VbCancael3終止VbAbort4重試VbRetry5忽略Vblgnore6是VbYes7否VbNo MsgBox函數(shù)的返回值2. MsgBox語(yǔ)句MsgBox函數(shù)也可以寫成語(yǔ)句形式,即:MsgBox , ,其中各參數(shù)的含義及作用與MsgBox函數(shù)相同。MsgBox語(yǔ)句和MsgBox函數(shù)實(shí)現(xiàn)的功能相同,只是沒有返回值,因而通常用于較簡(jiǎn)單的信息輸出。3.3.4 注釋、暫停與程序結(jié)束
32、語(yǔ)句注釋、暫停與程序結(jié)束語(yǔ)句1注釋語(yǔ)句為了提高程序的可讀性,可以在程序的適當(dāng)位置加上必要的注釋,對(duì)語(yǔ)句的功能加以解釋。VB中的注釋語(yǔ)句以一個(gè)撇號(hào)()或REM開始,其一般格式為: | REM 2暫停語(yǔ)句格式:STOP暫停語(yǔ)句是用來暫停程序的執(zhí)行,其作用類似于“運(yùn)行”菜單中的“中斷”命令,相當(dāng)于在程序代碼中設(shè)置斷點(diǎn)。當(dāng)程序執(zhí)行到STOP語(yǔ)句時(shí),會(huì)暫停程序的執(zhí)行,并自動(dòng)打開立即窗口,方便用戶調(diào)試跟蹤程序。3結(jié)束語(yǔ)句格式:ENDEND語(yǔ)句用來結(jié)束一個(gè)程序的執(zhí)行。當(dāng)在程序中執(zhí)行END語(yǔ)句時(shí),當(dāng)前程序?qū)⒔K止運(yùn)行,所有變量都將重置,并關(guān)閉所有的數(shù)據(jù)文件。一個(gè)程序中有沒有END語(yǔ)句對(duì)程序的運(yùn)行并沒有什么影響。
33、但是如果沒有結(jié)束語(yǔ)句或者雖有但沒有執(zhí)行(例如不執(zhí)行END語(yǔ)句的事件過程),則程序不能正常結(jié)束,為了保持程序的完整性,應(yīng)在程序中包含END語(yǔ)句并通過END語(yǔ)句來結(jié)束程序。3.4 應(yīng)用舉例應(yīng)用舉例 3.4.1窗體程序設(shè)計(jì)窗體程序設(shè)計(jì)【例3.7】設(shè)計(jì)如圖3-14所示的界面,當(dāng)點(diǎn)擊“顯示”按鈕時(shí),在窗體上顯示一副背景圖片,點(diǎn)擊“隱藏”按鈕時(shí)再使其消失。分析:首先在窗體設(shè)計(jì)器中加入三個(gè)命令按鈕,分別把它們的Caption修改為“顯示”、“隱藏”和“退出”,并調(diào)整它們的大小和位置。為使界面統(tǒng)一友好,最好使這三個(gè)按鈕大小一致、上下對(duì)齊,VB在“格式”菜單中提供了“對(duì)齊”和“統(tǒng)一尺寸”兩個(gè)命令,可以使用這兩個(gè)
34、命令實(shí)現(xiàn)控件的位置和大小調(diào)整。前面我們講到過窗體的Picture屬性,是用來設(shè)置顯示在窗體中的圖片的。所以,程序中要實(shí)現(xiàn)圖片的顯示和隱藏實(shí)質(zhì)上是通過這個(gè)屬性來控制的。當(dāng)要在窗體上顯示一副圖片時(shí),就讓該屬性的值為要顯示的圖片,否則,就使該屬性的值為空。程序代碼:“顯示”按鈕代碼:Private Sub Command1_Click()Form1.Picture = LoadPicture(d:Soap.bmp) 修改Picture屬性為要顯示的圖片End Sub“隱藏”按鈕代碼:Private Sub Command2_Click()Form1.Picture = LoadPicture() 修
35、改Picture屬性為空?qǐng)D片End Sub“退出”按鈕代碼:Private Sub Command3_Click()End 結(jié)束程序End SubLoadPicture函數(shù)的功能是將指定的圖形文件調(diào)入內(nèi)存。其格式為:對(duì)象名.PictureLoadPicture(文件名)括號(hào)中雙引號(hào)里面的內(nèi)容是要加載的圖形文件的名稱(一般應(yīng)寫出完整路徑)。通過代碼修改對(duì)象的Picture屬性時(shí)必須使用LoadPicture函數(shù)。運(yùn)行界面【例3.8】設(shè)計(jì)如圖3-15所示的界面,實(shí)現(xiàn)窗體位置的改變。當(dāng)單擊“改變位置”時(shí),窗體移到屏幕的左上角,單擊“還原”又回到原來的位置。分析:通過前面的學(xué)習(xí)我們知道,窗體的Top和
36、Left屬性確定了窗體顯示在屏幕上時(shí)的位置,因此,實(shí)現(xiàn)窗體位置的改變實(shí)質(zhì)上是通過代碼修改窗體的這兩個(gè)屬性的值。(1)初始化窗體程序運(yùn)行時(shí),首先應(yīng)該讓窗體有一個(gè)初始位置,相應(yīng)的代碼如下:Private Sub Form_Load()Form1.Left = 2500Form1.Top = 3000End Sub在Form的Load事件中給Form1的Top和Left屬性賦上了一個(gè)初始值,使程序運(yùn)行時(shí)窗體位于距離屏幕上方3000緹,左方2500緹的位置上。(2)改變窗體位置點(diǎn)擊“改變位置”按鈕,通過修改上面兩個(gè)屬性來實(shí)現(xiàn),代碼如下:Private Sub Command1_Click()Form1
37、.Move 100, 100End Sub這里是使用窗體的Move方法來改變窗體的Top和Left屬性的。執(zhí)行該過程后,窗體就會(huì)移動(dòng)到距離屏幕上方100緹,左方100緹的位置上。除了使用Move方法以外,也可以使用賦值語(yǔ)句直接修改Top和Left的屬性值。(3)恢復(fù)位置將窗體的位置還原,只需把Top和Left屬性再改回原來的值即可(代碼略)。同理,如果在實(shí)際應(yīng)用中要實(shí)現(xiàn)窗體大小的改變,則只需要修改窗體的Width和Height就可以了。運(yùn)行界面3.4.2文本框和標(biāo)簽程序設(shè)計(jì)文本框和標(biāo)簽程序設(shè)計(jì)【例3.9】設(shè)計(jì)一個(gè)簡(jiǎn)單的加法運(yùn)算器,由用戶從鍵盤上輸入兩個(gè)加數(shù),然后求它們的和并將結(jié)果顯示出來。程序
38、界面 表3-6 對(duì)象及屬性設(shè)置對(duì)象屬性屬性值作用窗體Caption加法運(yùn)算 標(biāo)簽1Caption加數(shù)1說明文本框1的作用標(biāo)簽2Caption加數(shù)2說明文本框2的作用標(biāo)簽3Caption+顯示“+”號(hào)標(biāo)簽4Caption顯示“”好文本框1Text空接收加數(shù)1文本框2Text空接收加數(shù)2文本框3Text空顯示結(jié)果LockedTrue 命令按鈕1Caption清除 命令按鈕2Caption運(yùn)算 命令按鈕3Caption退出 程序中用到的對(duì)象及其屬性“運(yùn)算”按鈕的事件過程:Private Sub Command2_Click()op1 = Val(Text1.Text)op2 = Val(Text2.
39、Text)Sum = op1 + op2Text3.Text = Str(Sum)End Sub文本框只能接收字符型數(shù)據(jù),為了能夠進(jìn)行加法運(yùn)算,首先要將用戶在文本框1和文本框2中輸入的字符通過Val()函數(shù)轉(zhuǎn)換為數(shù)值型數(shù)據(jù),然后分別賦給變量op1和op2,op1和op2相加之后的結(jié)果賦給變量Sum。再按文本框的使用要求用Str()函數(shù)把Sum轉(zhuǎn)換成字符型數(shù)據(jù),賦給文本框3的Text屬性,以在文本框3中顯示出來。“清除”按鈕的事件過程:該按鈕的作用是清除3個(gè)文本框中的原有信息,使其顯示的內(nèi)容為空白,并將光標(biāo)自動(dòng)定位到第1個(gè)文本框內(nèi),以便進(jìn)行下次輸入。代碼如下:Private Sub Comman
40、d1_Click()Text1.Text = Text2.Text = Text3.Text = Text1.SetFocus 將光標(biāo)定位到Text1End Sub【例3.9】設(shè)計(jì)一個(gè)窗體,在其中創(chuàng)建兩個(gè)標(biāo)簽和兩個(gè)文本框,標(biāo)簽用于顯示提示信息,其標(biāo)題分別為“密碼”和“明碼”;兩個(gè)文本框中一個(gè)用于輸入密碼,輸入的密碼要以“*”號(hào)顯示,另一個(gè)將輸入的密碼的真實(shí)字符顯示出來。分析:文本框1(Text1)用來使用戶輸入一個(gè)字符串型的密碼,并以“*”號(hào)顯示,所以要將其PasswordChar屬性設(shè)置為“*”,這樣,在Text1中輸入的任何字符均顯示為“*”。雖然顯示在文本框中的不是真實(shí)的輸入字符,但是這
41、并不影響Text1的Text屬性,該屬性值返回的仍然是用戶輸入的字符,所以可以通過該值得到用戶輸入的密碼,將它賦給第二個(gè)文本框Text2的Text屬性就可以將其顯示出來。因?yàn)橹灰?dāng)用戶在第一個(gè)文本框中進(jìn)行輸入,在第二個(gè)文本框中就要隨之顯示,所以,應(yīng)該在Text1的 Change事件中編寫代碼。代碼如下:Private Sub Text1_Change()Text2.Text = Text1.TextEnd Sub3.4.3對(duì)話框設(shè)計(jì)對(duì)話框設(shè)計(jì)【例3.10】利用輸入對(duì)話框輸入一個(gè)學(xué)生的姓名和電話,然后以消息框的形式給出提示,最后顯示在窗體上。代碼如下:Private Sub Form_Load()n = InputBox(請(qǐng)輸入姓名:, 姓名)s = InputBox(請(qǐng)輸入電話, 電話)str1 = 你的輸入為 & n & 和 & sMsgBox str1Label1.Caption = 姓名: & nLabel2.Caption = 電話: &
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024山場(chǎng)土地合同范本
- 2024超市股份合同范本
- 2024東莞市簡(jiǎn)易廠房租賃合同范本
- 2024廣播系統(tǒng)維修合同
- 2024股東股權(quán)轉(zhuǎn)讓合同范本
- 《詳細(xì)逆變電路》課件
- 深圳大學(xué)《自然辯證法概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 餐飲的勞務(wù)合同(2篇)
- 魚塘共同經(jīng)營(yíng)管理協(xié)議書(2篇)
- 裝修合同范本(2篇)
- 培智學(xué)校四年級(jí)生活語(yǔ)文《四季花開》公開課優(yōu)質(zhì)課課課件
- 標(biāo)準(zhǔn)化溝通模板
- 古代服飾發(fā)展史英文版課件
- 幼兒園經(jīng)典誦讀活動(dòng)方案(共6篇)
- 降低精神病患者危險(xiǎn)品接觸率品管圈模板課件
- 宏觀經(jīng)濟(jì)學(xué)課件 第5章財(cái)政政策和貨幣政策
- 教科版科學(xué)三年級(jí)(上冊(cè))2.6我們來做熱氣球(課件)
- 社工活動(dòng)表格(模板)
- (完整版)鋼琴五線譜(A4打印)
- 馬克思主義基本原理全套課件
- 動(dòng)物生產(chǎn)新技術(shù)與應(yīng)用課件
評(píng)論
0/150
提交評(píng)論