第2章 Visual Basic 程序設(shè)計(jì)基礎(chǔ)_第1頁
第2章 Visual Basic 程序設(shè)計(jì)基礎(chǔ)_第2頁
第2章 Visual Basic 程序設(shè)計(jì)基礎(chǔ)_第3頁
第2章 Visual Basic 程序設(shè)計(jì)基礎(chǔ)_第4頁
第2章 Visual Basic 程序設(shè)計(jì)基礎(chǔ)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第2章 Visual Basic 程序設(shè)計(jì)基礎(chǔ)內(nèi)容提要:本章介紹了程序設(shè)計(jì)的基本定義、結(jié)構(gòu)化程序設(shè)計(jì)的概念、特點(diǎn)和如何學(xué)習(xí)程序設(shè)計(jì)的方法,進(jìn)一步闡述可視化編程的特點(diǎn),通過實(shí)例說明窗體的使用。目的是讓讀者進(jìn)一步了解VB程序設(shè)計(jì)的過程和可視化編程的知識。2.1程序設(shè)計(jì)概述2.1.1 程序設(shè)計(jì)定義 1. 程序程序(Program)是計(jì)算機(jī)的一組指令,經(jīng)過編譯和執(zhí)行,計(jì)算機(jī)才可以完成一個具體的任務(wù)。2. 程序設(shè)計(jì)語言程序設(shè)計(jì)語言(Programming Language)是用于編寫計(jì)算機(jī)程序的語言。語言的基礎(chǔ)是一組記號和一組規(guī)則。根據(jù)規(guī)則由記號構(gòu)成的記號串的總體就是語言。在程序設(shè)計(jì)語言中,這些記號串就

2、是程序。程序設(shè)計(jì)語言包含三個方面,即語法、語義和語用。語法表示程序的結(jié)構(gòu)或形式,就是表示構(gòu)成程序的各個記號之間的組合規(guī)則,但不涉及這些記號的特定含義,也不涉及使用者。語義表示程序的含義,即表示按照各種方法所表示的各個記號的特定含義,但也不涉及使用者。語用表示程序與使用的關(guān)系。 程序設(shè)計(jì)語言的基本成分有:數(shù)據(jù)成分,用于描述程序所涉及的數(shù)據(jù);運(yùn)算成分,用以描述程序中所包含的運(yùn)算;控制成分,用以描述程序中所包含的控制;傳輸成分,用以表達(dá)程序中數(shù)據(jù)的傳輸。3. 程序設(shè)計(jì)簡單地說,程序設(shè)計(jì)就是設(shè)計(jì)程序的過程。具體地說,程序設(shè)計(jì)(Programming)就是指設(shè)計(jì)、編制、調(diào)試程序的方法和過程。抽象地說,程

3、序就是數(shù)據(jù)(Data Structure)+算法(Algorithm)。數(shù)據(jù)就是指我們要解決問題中所使用的數(shù)據(jù),并且解決這些數(shù)據(jù)的形式和如何存放問題;算法就是解題的方法和具體步驟。4. 一般程序設(shè)計(jì)步驟(1)分析問題對于接任務(wù)要進(jìn)行認(rèn)真的分析,研究給定的條件,分析最后應(yīng)達(dá)到的目標(biāo),找出解決問題的規(guī)律,選擇解題的方法,完成實(shí)際問題。(2)設(shè)計(jì)算法設(shè)計(jì)解題的方法和具體步驟。(3)編寫程序根據(jù)得到的算法,用一種高級語言編寫出源程序,并通過測試。(4)對源程序進(jìn)行編輯、編譯和連接(5)運(yùn)行程序,分析結(jié)果運(yùn)行可執(zhí)行程序,得到運(yùn)行結(jié)果。能得到運(yùn)行結(jié)果并不意味著程序正確,要對結(jié)果進(jìn)行分析,看它是否合理。不合

4、理要對程序進(jìn)行調(diào)試,即通過上機(jī)發(fā)現(xiàn)和排除程序中的故障的過程。例如:找出3個自然數(shù)的最大數(shù)的算法。我們可以把要解決的問題分解成一步一步所執(zhí)行的動作。你直接讓計(jì)算機(jī)告訴3個數(shù)誰是最大數(shù),它是沒辦法的,所以你必須接受數(shù)據(jù)和設(shè)計(jì)算法:首先讓計(jì)算機(jī)接受這三個數(shù),即將3個數(shù)放入3個內(nèi)存變量中R1,R2,R3;第二步要將三個一一比較,比較后判斷(先是R1與R2比找出最大的,再將較大的與R3比,則這次較大的數(shù)是三個數(shù)中最大的);最后把它輸出出來。對于這個過程我們指的是一個算法設(shè)計(jì)過程,接下來用計(jì)算機(jī)程序設(shè)計(jì)語言實(shí)現(xiàn),比如用VB程序設(shè)計(jì)語言。將3個數(shù)放入3個內(nèi)存變量中R1,R2,R3R1=6R2=7R3=9R1

5、與R2比找出最大的If r1>r2 then 較大的與R3比 If r1>r3 then 找出最大的 Print r1;”為最大” Else 找出最大的 Print r3;”為最大” End ifElse 較大的與R3比 If r2>r3 then 找出最大的 Print r2;”為最大” Else 找出最大的 Print r3;”為最大” End ifEnd if將上面代碼放到計(jì)算機(jī)上運(yùn)行即可得到結(jié)果。2.2 結(jié)構(gòu)化程序設(shè)計(jì)基礎(chǔ)2.2.1 結(jié)構(gòu)化程序設(shè)計(jì)基本概念計(jì)算機(jī)實(shí)際上就是一臺能夠快速執(zhí)行指令的機(jī)器,這些指令來源于特定的指令集,指令集的內(nèi)容清晰、簡單,僅僅包括四類指令:

6、算術(shù)運(yùn)算、邏輯運(yùn)算、數(shù)據(jù)傳送和控制轉(zhuǎn)移指令。通過這四類指令能夠支持計(jì)算機(jī)完成運(yùn)算處理所需要的三種基本控制結(jié)構(gòu):順序控制結(jié)構(gòu)、分支控制結(jié)構(gòu)、以及循環(huán)控制結(jié)構(gòu)??梢宰C明,通過這三種基本控制結(jié)構(gòu)可以構(gòu)成任何復(fù)雜的計(jì)算處理過程。而這三種基本控制結(jié)構(gòu)被稱為結(jié)構(gòu)化程序設(shè)計(jì)。結(jié)構(gòu)化程序設(shè)計(jì)的原則:自頂向下:程序設(shè)計(jì)時,應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。不要一開始就過多追求眾多的細(xì)節(jié),先從最上層總目標(biāo)開始設(shè)計(jì),逐步使問題具體化。逐步細(xì)化:對復(fù)雜問題,應(yīng)設(shè)計(jì)一些子目標(biāo)作為過渡,逐步細(xì)化。模塊化設(shè)計(jì):一個復(fù)雜問題,肯定是由若干稍簡單的問題構(gòu)成。模塊化是把程序要解決的總目標(biāo)分解為子目標(biāo),再進(jìn)

7、一步分解為具體的小目標(biāo),每一個小目標(biāo)稱為一個模塊。限制使用GOTO語句:結(jié)構(gòu)化程序設(shè)計(jì)方法的起源來自對GOTO語句的認(rèn)識和爭論??隙ǖ慕Y(jié)論是,在塊和進(jìn)程的非正常出口處往往需要用GOTO語句,使用GOTO語句會使程序執(zhí)行效率較高;在合成程序目標(biāo)時,GOTO語句往往是有用的,如返回語句用GOTO。否定的結(jié)論是,GOTO語句是有害的,是造成程序混亂的禍根,程序的質(zhì)量與GOTO語句的數(shù)量呈反比,應(yīng)該在所有高級程序設(shè)計(jì)語言中取消GOTO語句。取消GOTO語句后,程序易于理解、易于排錯、容易維護(hù),容易進(jìn)行正確性證明。2.2.2 結(jié)構(gòu)化程序設(shè)計(jì)圖的表示1. 圖示元素結(jié)構(gòu)化程序設(shè)計(jì)的邏輯形式可以通過流程圖(F

8、low Chart)和盒圖(N-S圖)形象地表達(dá)描述。圖示工具能夠更清晰、更直觀地表述程序的具體工作流程,是算法設(shè)計(jì)的有力工具。結(jié)構(gòu)化程序設(shè)計(jì)流程圖的基本元素如圖2-1所示。圖2-1 流程圖的基本元素通過N-S圖同樣可以描述程序所需要的任何操作。因?yàn)镹-S圖的元素本身就以基本控制結(jié)構(gòu)為基礎(chǔ),所設(shè)計(jì)的控制過程結(jié)構(gòu)嚴(yán)謹(jǐn)、清晰,可以保證程序具有良好的結(jié)構(gòu)化風(fēng)格,從而得到結(jié)構(gòu)更為優(yōu)化的設(shè)計(jì)結(jié)果。N-S圖的基本元素如圖2-2所示。圖2-2 N-S圖的基本元素2 三種控制結(jié)構(gòu)的畫法 (1)順序控制結(jié)構(gòu):順序控制結(jié)構(gòu)的命令主要包括變量設(shè)置、表達(dá)式計(jì)算、數(shù)據(jù)的輸入和輸出。順序控制結(jié)構(gòu)的特點(diǎn)是:指令執(zhí)行的次序與

9、指令在程序中書寫的次序一致;即寫在前邊的指令一定先執(zhí)行。順序控制結(jié)構(gòu)的流程圖以及對照的N-S圖如圖2-3所示。圖2-3 順序控制結(jié)構(gòu)的流程圖(左)與N-S圖(右) (2)分支控制結(jié)構(gòu):分支控制結(jié)構(gòu)中包括一個控制條件和A、B兩個操作過程。在程序執(zhí)行過程中,根據(jù)指定條件是否被滿足選擇執(zhí)行A部分或者B部分操作,并形成不同條件的不同操作結(jié)果。分支控制結(jié)構(gòu)的流程圖與對照的N-S圖如圖2-4所示。真假條件滿足時的操作條件不滿足時的操作條件條件A 操作B 操作分支控制后的操作TN 圖2-4 分支控制結(jié)構(gòu)流程圖(左)N-S圖(右) (3)循環(huán)控制結(jié)構(gòu):循環(huán)控制中主要包括一個循環(huán)控制條件和一個循環(huán)體處理過程。在

10、程序執(zhí)行過程中,根據(jù)控制條件是否被滿足,決定是否重復(fù)執(zhí)行循環(huán)體處理過程。在循環(huán)結(jié)構(gòu)中最主要的是:什么情況下執(zhí)行循環(huán)?哪些操作需要循環(huán)執(zhí)行?循環(huán)結(jié)構(gòu)的基本形式有兩種:當(dāng)型循環(huán)和直到型循環(huán)。兩種典型的循環(huán)控制過程的流程圖與對照的N-S圖直到型循環(huán)見圖2-5所示、2-6所示。直到型循環(huán):表示從結(jié)構(gòu)入口處直接執(zhí)行循環(huán)體,在循環(huán)終端處判斷條件,如果條件不滿足,返回入口處繼續(xù)執(zhí)行循環(huán)體,直到條件為真時再退出循環(huán)到達(dá)流程出口處,是先執(zhí)行后判斷。因?yàn)槭恰爸钡綏l件為真時為止”,所以稱為直到型循環(huán)。 當(dāng)型循環(huán):表示先判斷條件,當(dāng)滿足給定的條件時執(zhí)行循環(huán)體,并且在循環(huán)終端處流程自動返回到循環(huán)入口;如果條件不滿足,則

11、退出循環(huán)體直接到達(dá)流程出口處。因?yàn)槭恰爱?dāng)條件滿足時執(zhí)行循環(huán)”,即先判斷后執(zhí)行,所以稱為當(dāng)型循環(huán)。這三種基本控制結(jié)構(gòu)能夠構(gòu)成任何復(fù)雜的算法處理過程,也就是說,只要掌握了這三種基本控制結(jié)構(gòu)的控制思想方法,就可以完成任何復(fù)雜的算法設(shè)計(jì)。實(shí)際上,在所有計(jì)算機(jī)高級語言中,提供的都只是這三種控制結(jié)構(gòu)。程序設(shè)計(jì)者通過這些基本控制結(jié)構(gòu)既可以完成簡單計(jì)算(例如數(shù)據(jù)排序、檢索),也可以完成高精度、高難度的復(fù)雜計(jì)算(例如航天器的控制程序)。因此,可以認(rèn)為,只要真正掌握了程序的這三種基本控制結(jié)構(gòu)的思想,在學(xué)習(xí)不同的計(jì)算機(jī)高級語言時,需要學(xué)習(xí)掌握的就僅僅只是控制指令的不同表達(dá)形式而已。3. 偽碼表示還有一種用接近高級語

12、言的代碼描述程序設(shè)計(jì)的結(jié)構(gòu),例如:VB語言分支結(jié)構(gòu)可以用如下語句的描述: IF 條件描述 THEN 條件滿足時的計(jì)算過程ELSE 條件不能滿足時的計(jì)算過程 END IF又如VB語言循環(huán)結(jié)構(gòu)可以用如下語句的描述: WHILE(循環(huán)執(zhí)行的邏輯條件描述) 條件滿足時的執(zhí)行過程 Loop偽碼非常類似地以接近自然語言的形式表達(dá)了所需要的控制流程。因此,在學(xué)習(xí)VB時,最重要的就是掌握基本控制結(jié)構(gòu)的思想,即使用自然語言描述也是可以的。循環(huán)控制條件描述循環(huán)條件滿足時重復(fù)執(zhí)行的操作循環(huán)初始條件設(shè)置條件檢測循環(huán)體操作過程循環(huán)控制變量調(diào)整循環(huán)控制后操作YN循環(huán)控制條件描述循環(huán)條件滿足時重復(fù)執(zhí)行的操作循環(huán)初始條件設(shè)置

13、條件檢測循環(huán)體操作過程循環(huán)控制變量調(diào)整循環(huán)控制后操作YN圖2-5直到型循環(huán)控制結(jié)構(gòu)流程圖(左) N-S圖(右) 圖2-6當(dāng)型循環(huán)控制結(jié)構(gòu)流程圖(左) N-S圖(右)2.3 可視化編程的基礎(chǔ) 傳統(tǒng)的面向過程的結(jié)構(gòu)化程序設(shè)計(jì),用戶界面是通過編寫代碼來實(shí)現(xiàn),開發(fā)者在設(shè)計(jì)過程中看不到界面的實(shí)際顯示效果,只有等到編譯后程序運(yùn)行時才能觀察到,若對界面要作修改,必須返回到程序中去修改,顯然影響了軟件開發(fā)效率。而“可視化編程”是在一個便于理解的可視化的編程環(huán)境中,僅用鼠標(biāo)即可完成基本操作,無需為處理數(shù)據(jù)而編寫復(fù)雜的程序的一種編程方式。在VB中,應(yīng)用的是面向?qū)ο蟮某绦蛟O(shè)計(jì)(Object-Oriented Pro

14、gramming),把程序和數(shù)據(jù)封裝起來成為一個對象(Object),每個對象都是可視的(Visual),依靠VB提供的可視化設(shè)計(jì)平臺,開發(fā)者不必再為界面的設(shè)計(jì)而編寫大量的程序代碼,只需按照設(shè)計(jì)要求的屏幕布局,在屏幕上“畫”出各種“部件”即對象,如窗口、命令按鈕、菜單等,并設(shè)置這些圖形對象的位置、大小、顏色等屬性, VB將自動產(chǎn)生出界面設(shè)計(jì)代碼,開發(fā)者需要編寫的只是實(shí)現(xiàn)程序功能的那部分代碼,這種“所見即所得”(What You See Is What You Get)的可視化用戶界面設(shè)計(jì)大大提高了程序開發(fā)效率。2.3.1 對象的概念VB是基于對象的程序設(shè)計(jì)語言。用VB進(jìn)行應(yīng)用程序的設(shè)計(jì)過程,實(shí)

15、際上就是與一組標(biāo)準(zhǔn)對象進(jìn)行交互的過程。 對象是具有特殊屬性(數(shù)據(jù))和行為方式的(方法)的實(shí)體,在現(xiàn)實(shí)生活中到處可以見到,例如一個氣球可以是一個對象,它的材料、顏色、大小等特性稱為屬性,它們都具有自己的行為,比如一個球可以滾動、停止或旋轉(zhuǎn)。人也是一個對象,人的姓名、性別、身高、年齡、出生地等特征為屬性,一個人能夠執(zhí)行的動作和行為有呼吸、吃飯、跑步、唱歌和跳舞等。在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,對象的概念就是對現(xiàn)實(shí)世界中對象的模型化,它是代碼和數(shù)據(jù)的組合,同樣具有自己的狀態(tài)和行為。只不過在這里對象的狀態(tài)用數(shù)據(jù)來表示,稱為對象的屬性;而對象的行為用對象中的代碼實(shí)現(xiàn),稱為對象的方法。不同的對象有不同的方法,當(dāng)

16、然也不排除有部分重疊。對象可以是應(yīng)用程序中一個自包含的組件:一方面它具有私有的功能,供自己使用;另一方面又提供公用的功能,供其他用戶使用。對象包含數(shù)據(jù)及其代碼。在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,對象是系統(tǒng)中的基本運(yùn)行實(shí)體。在VB中對象的概念和面向?qū)ο蟮某绦蛟O(shè)計(jì)中的對象概念是一致的,但在使用上有很大的區(qū)別。在VB中,對象分為兩類:一類是由系統(tǒng)設(shè)計(jì)好的,稱為預(yù)定義對象,可以直接使用或?qū)ζ溥M(jìn)行操作;另一類由用戶定義,可以建立用戶自己的對象。 在VB中,窗體和控件就是預(yù)定義對象,是由系統(tǒng)設(shè)計(jì)好提供給用戶使用的,其移動、縮放等操作都是由系統(tǒng)預(yù)先定義好的,使用非常方便,比如對象的移動。除窗體控件外,VB還提供了其他

17、一些對象,如打印機(jī)、調(diào)試、剪貼板、屏幕等。 VB系統(tǒng)中的常用對象有窗體、標(biāo)簽、文本框、命令按鈕、數(shù)據(jù)庫、圖表等。如圖2-9所示。對象的應(yīng)具備的三要素:屬性(一個對象的性質(zhì),即特征參數(shù)的集合)、事件(對象可以響應(yīng)的,在對象上發(fā)生的事情)、方法(對象的動作)。窗體對象圖片框?qū)ο笪谋究驅(qū)ο竺畎粹o對象圖2-9 VB系統(tǒng)中的常用對象2.3.2 屬性對象的屬性是指一個對象所具有的性質(zhì)或者描述對象的數(shù)據(jù)、特征。在可視化編程中,每一種對象都有一組特定的屬性。對象常見的屬性有標(biāo)題(Caption)、名稱(Name)、顏色(Color)、字體大?。‵ontSize)、是否可見(Visible)等。有許多屬性可能

18、為大多數(shù)對象所共有,還有一些屬性僅局限于個別對象,例如只有命令按鈕才有Cancel屬性。一個對象屬性都有一個默認(rèn)值,如果不明確地改變該屬性值,程序就將使用它的默認(rèn)值。通過修改對象的屬性能夠控制對象的外觀和操作。而有些屬性在運(yùn)行時是只讀的。當(dāng)改變對象的屬性,可以控制對象在程序中作用。有些是可見屬性,例如屬性的種類、形狀、顏色等;有些是不可見屬性,例如壽命、年齡等。圖2-10 對象的屬性設(shè)置對象屬性的設(shè)置一般有兩條途徑: (1)通過屬性窗口設(shè)置 選定對象,在屬性窗口(如圖2-10所示)中找到相應(yīng)屬性,直接進(jìn)行設(shè)置。這種方法的特點(diǎn)是簡單明了,其缺點(diǎn)是不能在屬性窗口設(shè)置所有需要的屬性。 (2)通過代碼

19、設(shè)置 對象的屬性也可以在代碼中通過編程來設(shè)置,一般格式為: 對象名.屬性名 = 屬性值 例如,設(shè)置標(biāo)簽Text1的Text為“屬性設(shè)置”,代碼為: Text1.Text = "屬性設(shè)置" 注意:對象的大多數(shù)屬性都可以通過以上兩種方式進(jìn)行設(shè)置,而有些屬性只能使用程序代碼或?qū)傩源翱谠O(shè)置其中之一進(jìn)行設(shè)置。 2.3.3 事件對象的事件(Event)就是對象上所發(fā)生的事情。在Visual Basic中,事件是預(yù)先定義好的、能夠被對象識別的動作,如Click(單擊)、DblClick(雙擊)、Load(裝入)、MouseMove(移動鼠標(biāo))、Change(改變)等。不同的對象能夠識別不

20、同的事件。當(dāng)事件由用戶觸發(fā)(如Click)或由系統(tǒng)觸發(fā)(Load)時,對象就會對該事件做出響應(yīng)。例如,把一個吹大的氣球看成是一個對象,那么氣球?qū)Υ唐扑氖录憫?yīng)是放氣,對氣球松開手的事件的響應(yīng)是升空。再如,我們可以編寫一個程序,該程序響應(yīng)用戶的Click事件,只要單擊鼠標(biāo)左鍵即可在屏幕上顯示指定的信息。 響應(yīng)某個事件后所執(zhí)行的操作通過一段程序代碼來實(shí)現(xiàn),這樣的代碼叫做事件過程(Event Procedure)。一個對象可以識別一個或多個事件,因此可以使用一個或多個事件過程對用戶或系統(tǒng)的事件做出響應(yīng)。雖然一個對象可以擁有許多事件過程,但在程序中能使用多少事件過程,則要由設(shè)計(jì)者根據(jù)程序的具體要求來

21、確定。 Visual Basic中的事件分為:系統(tǒng)事件和用戶事件。 (1)系統(tǒng)事件 由其他事件或Windows操作系統(tǒng)觸發(fā)的事件稱為系統(tǒng)事件,系統(tǒng)事件無需任何用戶干預(yù)。例如:Timer 事件就是一個系統(tǒng)事件。 (2)用戶事件 由用戶執(zhí)行的某些操作所觸發(fā)的事件稱為用戶事件。 例如,簡單的用戶操作, 單擊窗體上的命令按鈕;在文本框中可顯示“歡迎您學(xué)習(xí)VB程序設(shè)計(jì)”,是因?yàn)樵诖a窗口有代碼“Text1.Text= “歡迎您學(xué)習(xí)VB程序設(shè)計(jì)” ”。如圖2-11所示。圖2-11 單擊命令按鈕執(zhí)行結(jié)果2.3.4 方法對象的方法(Method)就是要執(zhí)行的動作。VB的方法與事件過程類似,是一種特殊的過程和函

22、數(shù),它用于完成某種特定功能而不能響應(yīng)某個事件,如Print(打印對象)、Show(顯示窗體)、Move(移動)方法等。每個方法完成某個功能,用戶無法看到其實(shí)現(xiàn)的步驟和細(xì)節(jié),更不能修改,用戶能做的工作只是按照約定直接調(diào)用它們。如圖2-12表示調(diào)用Form1的Circle方法,執(zhí)行結(jié)果。圖2-12 窗體上畫圓的方法(Circle)綜上所述,我們可以把屬性看成是對象的特征,把事件看成是對象的響應(yīng),把方法看成是對象的行為,屬性、事件和方法構(gòu)成了對象的三要素。 2.3.5 窗體 1. 窗體對象特點(diǎn)窗體是在Windows環(huán)境下建立直觀的應(yīng)用程序的基礎(chǔ),是VB程序設(shè)計(jì)的對象,它如同一塊畫布,在窗體上可以直觀

23、地建立應(yīng)用程序。窗體可以看作是控件的容器,用戶界面的控件一般都放置到窗體中。VB的窗體具有Windows窗體的基本特性,圖2-13所示是一個窗體的說明圖。 標(biāo)題欄是大多數(shù)窗體頂部的彩條,缺省為藍(lán)色。利用標(biāo)題欄可以在屏幕上拖拽此窗體,雙擊標(biāo)題欄將在最大化和恢復(fù)該窗體之間做切換。 標(biāo)題是在窗體標(biāo)題欄中所見到的文字。系統(tǒng)菜單(控制菜單)是一個簡單的菜單,位于窗體左上角,雙擊該圖標(biāo)將關(guān)閉窗體,單擊該圖標(biāo)將顯示系統(tǒng)命令菜單。 最小化、最大化、關(guān)閉按鈕分別起使窗體縮小到Windows的任務(wù)條上、擴(kuò)大至整個屏幕、關(guān)閉窗體的功能。 圖2-13 窗體說明圖 窗體的邊框給窗體提供了一定的靈活性,可以根據(jù)要顯示的不

24、同窗體,設(shè)定不同的邊框值,這些值可以在BorderStyle屬性中設(shè)置。 VB中的應(yīng)用程序可以包含許多個窗體,一個標(biāo)準(zhǔn)“.exe”類型的Visual Basic應(yīng)用程序至少有一個窗體。最初打開新工程時,默認(rèn)情況下會新建窗體,也可以通過菜單欄上的“工程”菜單項(xiàng)選擇“添加窗體”菜單項(xiàng)將其他窗體添加到工程中。 2. 窗體的屬性 在VB中應(yīng)用程序的界面是通過設(shè)置窗體的屬性實(shí)現(xiàn)的,窗體的屬性決定了窗體外觀。對大部分窗體屬性,既可以在屬性窗口設(shè)置,也可以在程序中設(shè)置,只有少量的屬性只能在設(shè)計(jì)狀態(tài)中設(shè)置,或只能在窗體運(yùn)行期間設(shè)置。(1)Name(名稱)屬性 Name屬性是所有對象都具有的屬性,是所創(chuàng)建對象的

25、名稱。所有的控件在創(chuàng)建時由VB提供一個默認(rèn)名稱。Name屬性可以在Name屬性窗口的“名稱”欄進(jìn)行修改。在程序中,對象名稱是作為對象的標(biāo)識在程序中引用,不會顯示在窗體上。Name是只讀屬性,在運(yùn)行時不可更改。 (2)Caption(標(biāo)題)屬性 Caption屬性決定了控件上顯示的標(biāo)題內(nèi)容??梢栽谠O(shè)計(jì)時通過屬性窗口設(shè)置,也可以在運(yùn)行時通過代碼設(shè)置。格式為: 對象.Caption = 字符串 例如:Form1.Caption= "設(shè)置標(biāo)題屬性" (3)Left、Top (左、頂)屬性 Left、Top屬性分別指定對象的左上角在容器中的橫向及縱向坐標(biāo)(左上角為0,0),即Left

26、屬性確定窗體最左端和它的容器最左端之間的距離;Top屬性確定窗體最上端和它的容器最上端之間的距離??丶娜萜髦傅氖谴绑w,窗體的容器指的是屏幕(Screen)。度量單位由容器的ScaleMode屬性指定,默認(rèn)的單位是Twip。通常Left和Top屬性在一個窗體中總是成對出現(xiàn)的,當(dāng)用戶移動窗體時,這兩個屬性值都會隨之改變。(4)Width、Height(寬、高)屬性 Width、Height屬性決定了對象的寬度和高度。度量單位由容器的ScaleMode屬性指定,默認(rèn)的單位是Twip??梢栽趯傩源翱谥性O(shè)置,也可通過代碼設(shè)置,格式為: 對象.Height = 數(shù)值 和 對象.Width = 數(shù)值 它們

27、的最大值由系統(tǒng)決定。 (5)ScaleMode屬性 ScaleMode屬性為設(shè)置對象坐標(biāo)的度量單位。取值及對應(yīng)的度量單位如表2-1所示。 表2-1 ScaleMode屬性取值及對應(yīng)度量單位表取值 度量單位 0 User(用戶自定義模式) 1 Twip(緹,系統(tǒng)缺省設(shè)置) 2 Point(點(diǎn)或磅) 3 Pixel(像素) 4 Character(字符) 5 Inch(英寸) 6 Millimeter(毫米) 7 Centimeter(厘米) 其中0(用戶自定義模式)和3(像素模式)不可用于打印機(jī)(Printer)對象。 (6)Enabled(可用)屬性 Enabled屬性設(shè)置對象是否可以操作。值

28、為True時允許操作,值為False時禁止操作,對可視對象,顯示為灰色。同樣該屬性可以在屬性窗口中或通過代碼設(shè)置,格式為: 對象.Enabled = Boolean 默認(rèn)值為True。 (7)Visible(可見)屬性 Visible屬性為設(shè)置對象是否可見。值為True時,對象在程序運(yùn)行時可見;值為False時,對象在程序運(yùn)行時隱藏起來,用戶看不見,但對象本身存在。(8)Font(字體)屬性 Font屬性為設(shè)置輸出字符的字體類型,改變文本的外觀。 字體本身又是一個對象,又有自己的屬性,包括字體類型(FontName)、字體大?。‵ontSize)、是否粗體(FontBold)、是否斜體(Fon

29、tItalic)、是否加下劃線(FontUnderline)等。設(shè)置時通過屬性窗口,點(diǎn)擊Font右邊的“”可彈出字體對話框,如圖2-14所示,可通過字體對話框來設(shè)置各種屬性。 圖2-14 字體屬性設(shè)置對話框 此外,還可以在運(yùn)行時通過編寫代碼來實(shí)現(xiàn)對字形屬性的設(shè)置,具體設(shè)置方式如下: 字體類型 字體類型可以通過FontName屬性設(shè)置,格式為:對象名稱.FontName = "字體名稱" FontName可以作為窗體、控件或打印機(jī)的屬性,返回或設(shè)置顯示文本所用的字體。 Visual Basic 中可用的字體取決于系統(tǒng)的配置、顯示設(shè)備和打印設(shè)備。與字體相關(guān)的屬性只能設(shè)置為真正存

30、在的字體的值。 字體大小 字體大小通過FontSize屬性來設(shè)置, 格式為: 對象名稱.FontSize = 點(diǎn)數(shù) FontSize屬性返回,顯示文本所用的字體的大小,單位為磅。例如: Form1.FontSize = 20 '設(shè)置窗體(Form1)的字體大小為20磅 FontSize的最大值為 2160 磅,在默認(rèn)情況下,F(xiàn)ontSize為9磅。 其他屬性 a)粗體 粗體字通過FontBold屬性設(shè)置, 格式為: 對象名稱.FontBold = Boolean 當(dāng)FontBold屬性為True時,文本以粗體字輸出,否則按正常字輸出。該屬性的默認(rèn)值為False。 b)斜體 斜體字通過F

31、ontItalic屬性設(shè)置,格式為:對象名稱.FontItalic = Boolean 當(dāng)FontItalic屬性為True時,文本以斜體字輸出,否則按正常字輸出。該屬性的默認(rèn)值為False。 c)加下劃線 加下劃線通過FontUnderline屬性設(shè)置,格式為:對象名稱.FontUnderline = Boolean 如果把FontUnderline屬性設(shè)置為True,則可使輸出的文本加下劃線。該屬性的默認(rèn)值為False。 d)加刪除線 刪除線即在文本中部畫一條直線。通過對FontStrikethru屬性的設(shè)置可以使輸出的文本加刪除線。 格式為:對象名稱.FontStrikethru = B

32、oolean 如果把FontStrikethru屬性設(shè)置為True,則可使輸出的文本加刪除線。該屬性的默認(rèn)值為False。 在上面的各種屬性中,可以省略方括號中的內(nèi)容,此時,將返回屬性的當(dāng)前值;如果省略對象名稱,則默認(rèn)為當(dāng)前窗體的屬性。 (9)ForeColor(前景色)屬性 ForeColor屬性為設(shè)置或返回對象的前景顏色。其值是一個十六進(jìn)制常數(shù),用戶可以在調(diào)色板中直接選擇所需的顏色,如圖2-15所示。 圖2-15前景色屬性值設(shè)置 (10)BackColor(背景色) 屬性BackColor屬性為設(shè)置或返回對象的背景顏色。其設(shè)置與ForeColor屬性的設(shè)置相同。 (11)MaxButton

33、、MinButton(最大、最小化按鈕) 屬性MaxButton、MinButton這兩個屬性決定窗體是否具有最大化和最小化按鈕。MaxButton屬性為True時,表明窗體有最大化按鈕;為False時,表明窗體沒有最大化按鈕。MinButton屬性為True時,表明窗體有最小化按鈕;為False時,表明窗體沒有最小化按鈕。要顯示最大化或最小化按鈕,BorderStyle屬性應(yīng)設(shè)置為1或2。當(dāng)一個窗體被最大化時,最大化按鈕會自動變?yōu)榛謴?fù)按鈕。 (12) BorderStyle(邊框類型)屬性BorderStyle屬性為確定窗體邊框的樣式。取值及其說明如表2-2所示。 在運(yùn)行期間,BorderS

34、tyle屬性是只讀屬性。它只能在設(shè)計(jì)階段設(shè)置,不能在運(yùn)行期間改變。 BorderStyle屬性除應(yīng)用于窗體外,還可用于多種控件,其設(shè)置值也不一樣。 表2-2窗體的BorderStyle屬性取值表 符號常數(shù) 取值說明 vbBSNone 0 無(沒有邊框或與邊框相關(guān)的元素) vbFixedSingle 1 固定單邊框??梢园刂撇藛慰?, 標(biāo)題欄,最大化 和 最小化按鈕 。只有使用最大化和最小化按鈕才能改變大小。 vbSizable 2 (缺省值)可調(diào)整的邊框。可以使用設(shè)置值1列出的任何可選邊框元素重新改變尺寸。 vbFixedDouble 3 固定對話框??梢园刂撇藛慰蚝蜆?biāo)題欄,不能包含最大

35、化和最小化按鈕,不能改變尺寸。 vbFixedToolWindow 4 固定工具窗口。不能改變尺寸。顯示關(guān)閉按鈕并用縮小的字體顯示標(biāo)題欄。窗體在 Windows的任務(wù)條中不顯示。 vbSizableToolWindow5 可變尺寸工具窗口。可變大小。顯示關(guān)閉按鈕并用縮小的字體顯示標(biāo)題欄。窗體在 Windows的任務(wù)條中不顯示。 (13)ControlBox(控制框)屬性ControlBox屬性可返回或設(shè)置一個值,指示在運(yùn)行時系統(tǒng)菜單是否在窗體中顯示。設(shè)置為True(缺省值),則顯示系統(tǒng)菜單;設(shè)置為False,則不顯示系統(tǒng)菜單。為了顯示系統(tǒng)菜單,還必須將窗體的 BorderStyle 屬性值設(shè)置

36、為 1(固定單邊框),2(可變尺寸)或 3(固定對話框)。該屬性在運(yùn)行時為只讀。 (14)Icon(圖標(biāo))屬性Icon 屬性是設(shè)置在運(yùn)行時窗體處于最小化時顯示的圖標(biāo)。所加載的文件必須有“.ico ”文件擴(kuò)展名和格式,如果不指定圖標(biāo),窗體會使用VB 缺省圖標(biāo)。該屬性可以在屬性窗口中設(shè)置,也可通過代碼設(shè)置,使用LoadPicture函數(shù)或另一個窗體的Icon屬性給當(dāng)前窗體的該屬性賦值。 (15)Moveable(可移動)屬性Moveable屬性為返回或設(shè)置窗體是否可以移動。Moveable屬性可以在屬性窗口中或運(yùn)行時通過代碼設(shè)置,格式為: 對象.Moveable = Boolean 為True(默

37、認(rèn)值)時,窗體可以移動,為False時,窗體不可移動。 (16)Picture(圖形)屬性Picture屬性用來在對象中顯示一個圖形。該屬性可以在屬性窗口中設(shè)置,也可以通過代碼由LoadPicture函數(shù)和其他對象的Picture屬性設(shè)置。LoadPictue函數(shù)的語法:LoadPicture(filename, size, colordepth,x,y)參數(shù)說明見表2-3、2-4、2-5所示。表2-3 LoadPictue函數(shù)的語法參數(shù)說明部分描述filename可選的。字符串表達(dá)式指定一個文件名??梢园ㄎ募A和驅(qū)動器。如果未指定文件名,LoadPicture 清除圖象或 PictureB

38、ox 控件。size可選變體。如果 filename 是光標(biāo)或圖標(biāo)文件,指定想要的圖象大小。colordepth可選變體。如果 filename 是一個光標(biāo)或圖標(biāo)文件,指定想要的顏色深度。x可選變體,如果使用 y ,則必須使用。如果 filename 是一個光標(biāo)或圖標(biāo)文件,指定想要的寬度。在包含多個獨(dú)立圖象的文件中,如果那樣大小的圖象不能得到時,則使用可能的最好匹配。只有當(dāng) colordepth 設(shè)為 vbLPCustom 時,才使用X 和 Y值。For icon files 255 is the maximum possible valuey可選變體,如果使用 x, 則必須使用。如果 fil

39、ename 是一個光標(biāo)或圖標(biāo)文件,指定想要的高度。在包含多個獨(dú)立圖象的文件中,如果那樣大小的圖象不能得到時,則使用可能的最好匹配。For icon files 255 is the maximum possible value表2-4 LoadPictue函數(shù)的參數(shù)size說明常量值描述vbLPSmall0系統(tǒng)小圖標(biāo)。vbLPLarge1系統(tǒng)大圖標(biāo),由視頻驅(qū)動程序決定。vbLPSmallShell2外殼小圖標(biāo)大小,由“控制面板”中的 Display Properties 對話框中 Appearance 選項(xiàng)卡上的 Caption Buttons 的大小設(shè)置決定。vbLPLargeShell3外

40、殼大圖標(biāo)大小,由“控制面板”中的 Display Properties 對話框中 Appearance 選項(xiàng)卡上的圖標(biāo)大小設(shè)置決定。vbLPCustom4自定義大小,由 x 和 y 參數(shù)提供值。表2-5 LoadPictue函數(shù)的參數(shù)colordepth說明常量值描述vbLPDefault0如果使用指定文件,則為最佳可用匹配。vbLPMonochrome12 色。vbLPVGAColor216 色。vbLPColor3256 色。VB系統(tǒng)中可以識別的圖形格式有:位圖文件(.bmp)、圖標(biāo)文件(.ico)、光標(biāo)文件(.cur),行程編碼文件(.rle)、元文件(.wmf)、增強(qiáng)的元文件 (.em

41、f), 文件GIF(.gif)以及 JPEG文件(.jpg)。賦值不帶參數(shù)的 LoadPicture 將清除窗體、圖片框及圖象控件中的圖形。要加載在窗體為背景的圖形,必須將 LoadPicture 的返回值賦給要顯示該圖片的對象的 Picture 屬性。例如:Set Picture = LoadPicture("C:UsersZhengliminPicturesintro.jpg")如果要將圖標(biāo)賦予窗體,則要把 LoadPicture 函數(shù)的返回值賦給 Form 對象的 Icon 屬性:Set Form1.Icon = LoadPicture("MYICON.IC

42、O")(17)WindowState(窗口狀態(tài))屬性WindowState屬性可以把窗體設(shè)置成在啟動時最大化、最小化或正常大小。WindowsState屬性為0(Normal)時,窗體顯示為正常大小,即設(shè)計(jì)時的大??;為1(Minimized)時,窗體最小化成圖標(biāo);為2(Maximized)時,窗體最大化顯示。 3. 窗體的事件 當(dāng)用戶執(zhí)行與窗體相關(guān)的某些操作時觸發(fā)的事件被稱為窗體事件。常用的窗體事件有: (1)Load(裝入)事件 Load事件是在窗體被裝載時發(fā)生的事件。一旦裝載窗體,啟動應(yīng)用程序就自動產(chǎn)生該事件,當(dāng)執(zhí)行應(yīng)用程序時,VB調(diào)用Form_Load事件過程。Load事件適用

43、于在啟動應(yīng)用程序時對屬性和變量的初始化。例如,用Load事件為應(yīng)用舉例進(jìn)行賦值。 Private Sub Form_Load() Text1.Text = "" Form1.Caption = "VB實(shí)例" End Sub (2)Unload(卸載)事件 刪除窗體時發(fā)生Unload事件,VB調(diào)用Form_Unload事件過程。當(dāng)該窗體在被裝載時,它的所有控件都要重新初始化。這個事件是由用戶動作(用控件、菜單關(guān)閉窗體)或一個Unload語句觸發(fā)的。 (3)Click(單擊)事件 Click事件是在程序運(yùn)行后,用鼠標(biāo)單擊窗體操作時產(chǎn)生的事件。 (4)DblC

44、lick(雙擊)事件 雙擊窗體產(chǎn)生DblClick事件,執(zhí)行DblClick事件過程。 (5)Activate、Deactivate(活動、非活動)事件 激活窗體時發(fā)生Activate事件,取消該活動窗體激活另一個窗體時該窗體發(fā)生Deactivate事件。窗體可通過用戶的操作變成活動窗體,如用鼠標(biāo)單擊窗體的任何部位或在代碼中使用Show或SetFocus方法。 (6)Paint(繪畫)事件 重新繪制一個窗體時發(fā)生Paint事件。當(dāng)移動、放大、縮小該對象或一個覆蓋該對象的窗口移動后,該窗體暴露出來,就會發(fā)生此事件。 除以上事件外,窗體的常用事件還有:Resize(改變尺寸)事件, KeyPres

45、s(按鍵)事件,MouseDown(鼠標(biāo)按下)事件、MouseUp(鼠標(biāo)松開)事件、MouseMove(鼠標(biāo)移動)事件等。例如,窗體最大化或還原時,均發(fā)生Resize事件。 (7)各事件先后比較4. 窗體的方法 (1)Show方法 Show方法用以顯示Form 對象。語法格式為:窗體名.Show 模式 如果調(diào)用 Show 方法時指定的窗體沒有裝載,VB將自動裝載該窗體。另外,應(yīng)用程序的啟動窗體在其 Load 事件調(diào)用后會自動出現(xiàn)。 可選參數(shù)“模式”,用來確定被顯示窗體的狀態(tài):值等于1時,表示窗體狀態(tài)為“模態(tài)”(模態(tài)是指鼠標(biāo)只在當(dāng)前窗體內(nèi)起作用,只有關(guān)閉當(dāng)前窗口后才能對其他窗口進(jìn)行操作);值等于

46、0時,表示窗體狀態(tài)為“非模態(tài)”(非模態(tài)是指不必關(guān)閉當(dāng)前窗口就可以對其他窗口進(jìn)行操作)。 (2)Hide方法 Hide方法用以隱藏Form 對象,但不能使其卸載。語法格式為:窗體名.Hide 如果省略窗體名,則默認(rèn)為當(dāng)前窗體(帶焦點(diǎn)的窗體)。 隱藏窗體時,它就從屏幕上被刪除,并將其 Visible 屬性設(shè)置為 False。 用戶將無法訪問隱藏窗體上的控件,但是對于運(yùn)行中的VB應(yīng)用程序,或?qū)τ?Timer 控件的事件,隱藏窗體的控件仍然是可用的。 如果調(diào)用 Hide 方法時窗體還沒有加載,那么 Hide 方法將加載該窗體但不顯示它。 (3)Move方法 Move方法用以移動Form 或控件。格式為

47、:對象.Move Left ,Top ,Width ,Height 對象為窗體或控件名,只有Left 參數(shù)是必需的。但是,要指定任何其他的參數(shù),必須先指定出現(xiàn)在語法中該參數(shù)前面的全部參數(shù)。例如,如果不先指定 Left 和 Top 參數(shù),則無法指定 Width 參數(shù)。任何沒有指定的尾部的參數(shù)則保持不變。 (4)Cls方法 Cls方法是清除運(yùn)行時窗體(或圖片框)中生成的圖形和文本。形式如下:對象.Cls (5)Print方法 Print方法用于在窗體上輸出文本,例如:在窗體上輸出文本“你好!歡迎您學(xué)習(xí)V B!” 可用:Print “你好!歡迎您學(xué)習(xí)VB!”2.3.6 控件及其操作控件和窗體一樣,都

48、是VB中的對象,共同構(gòu)成用戶界面。VB的控件是具有自己的屬性、事件和方法的對象,通常分為以下3種類型。 1. 標(biāo)準(zhǔn)控件(也稱內(nèi)部控件) 在默認(rèn)狀態(tài)下工具箱中顯示的控件都是內(nèi)部控件,這些控件被封裝在VB的可執(zhí)行文件中,不能從工具箱中刪除,如命令按鈕、文本框、單選按鈕、復(fù)選框等。 2. ActiveX控件 ActiveX這類控件單獨(dú)保存在“.ocx”類型的文件中,其中包括各種版本VB提供的控件,以及僅在專業(yè)版和企業(yè)版中提供的控件,如公共對話框、動畫控件等。另外還有許多軟件廠商提供的ActiveX控件。 3. 可插入對象 用戶可將Excel工作表或PowerPoint幻燈片等作為一個對象添加到工具箱

49、中,編程時可根據(jù)需要隨時創(chuàng)建。4. 控件的操作(1)控件的添加在窗體上添加控件,有兩種方式。單擊工具箱中的控件圖標(biāo),此時光標(biāo)在窗體上變?yōu)椤?”號,在窗體上選定適當(dāng)?shù)奈恢?,按下鼠?biāo)左鍵,不松開,同時向右下方拖動鼠標(biāo),窗體上出現(xiàn)一個矩形框,松開鼠標(biāo)左鍵,完成在窗體上畫一個控件。雙擊工具箱中的控件圖標(biāo),系統(tǒng)自動在窗體中央畫出一個控件,所畫控件的大小和位置是固定的。如圖2-16所示。圖2-16 雙擊工具箱中命令按鈕結(jié)果如果要在窗體上畫多個同一類型的控件,可以采用如下步驟:按下Ctrl鍵后,單擊工具箱中的控件圖標(biāo),然后松開Ctrl鍵。在窗體上畫控件,可畫多個。畫完這個類型的控件后,單擊工具箱中的指針圖標(biāo)

50、或選擇其它控件。(2)控件的位置和大小控件的大小和位置可以調(diào)整,分為粗略調(diào)整和準(zhǔn)確調(diào)整。粗略調(diào)整。在窗體上選中要調(diào)整的控件,此控件的邊框上有8個實(shí)心小方塊,用鼠標(biāo)拖動控件調(diào)整位置,拖拉8個方塊可實(shí)現(xiàn)一個或兩個方向的縮放。準(zhǔn)確調(diào)整。通過改變屬性窗口中的4個相關(guān)的屬性值,改變控件的大小和位置。其中,Width和Height改變控件的大小,Left和Top改變控件的位置。(3)控件的復(fù)制和刪除控件和文本信息一樣可以進(jìn)行剪切、復(fù)制和粘貼??丶膹?fù)制步驟如下:畫好一個控件(以命令按鈕為例)。選中它,單擊鼠標(biāo)右鍵,點(diǎn)擊“復(fù)制”。在窗體空白處,單擊鼠標(biāo)右鍵,點(diǎn)擊“粘貼”,屏幕上將出現(xiàn)一個對話框,“已經(jīng)有一個

51、控件為' Command1'。創(chuàng)建一個控件數(shù)組嗎?”詢問是否建立控件數(shù)組,選擇“是”或“否”后,則在窗體左上角出現(xiàn)復(fù)制的控件。刪除控件,只要先選中要刪除的控件,然后按Del鍵即可。(4)多個控件的操作如果要對多個控件進(jìn)行操作,首先選中多個控件的方式有兩種:先按住Shift鍵,不要松開,再分別單擊要選中的控件。每個選中的控件周圍都有8個小方塊,但只有一個是實(shí)心方塊,其它的都是空心方塊。如圖2-17所示,其中實(shí)心方塊的Command3是當(dāng)前控件,也叫做活動控件。圖2-17選中多個控件如果要選中的控件都在一個矩形框內(nèi),則通過拖動鼠標(biāo)畫出一個虛線矩形,在此矩形內(nèi)的控件都被選中,同樣地,

52、只有一個控件是當(dāng)前控件。為了使運(yùn)行界面美觀,有時需要調(diào)整控件的位置和大小,使它們排列整齊、大小一致。首先選中這些控件,然后選擇菜單命令“格式 / 對齊”,實(shí)現(xiàn)多個控件水平或垂直方向?qū)R;“格式 /統(tǒng)一尺寸”,實(shí)現(xiàn)多個控件高度或?qū)挾纫恢?;“格?/ 水平間距”、“格式 / 垂直間距”, 實(shí)現(xiàn)多個控件水平 / 垂直間距一致;“格式 / 順序”,當(dāng)多個控件位置重疊時,改變它們的顯示順序。當(dāng)選中多個控件后,屬性窗口中屬性項(xiàng)數(shù)會減少,只顯示它們共同的屬性。如圖2-17所示,此時屬性窗口中就沒有名稱(Name)屬性。如果修改它們的共同屬性,則被選中的所有控件的屬性都將作相應(yīng)的修改。2.4可視化程序設(shè)計(jì)舉例

53、【例2-2】 本例主要初學(xué)者理解窗體設(shè)計(jì)中的屬性設(shè)置與執(zhí)行事件代碼的結(jié)果。要求窗體的標(biāo)題為“可視化實(shí)例”,字體為宋體的“三”號字體,背景色為指定“淺藍(lán)色”。設(shè)計(jì)好在窗體屬性后,再添加3個文本框,兩個命令按鈕,試觀察文本框Font屬性與Command按鈕Font屬性。命令按鈕1的Click事件為清除文本框1的內(nèi)容,命令按鈕2的Click事件為結(jié)束程序運(yùn)行。當(dāng)文本框1的內(nèi)容發(fā)生變化時,將文本框1的內(nèi)容變小寫給文本框2;當(dāng)文本框1的內(nèi)容發(fā)生變化時,將文本框1的內(nèi)容變大寫給文本框3。試實(shí)現(xiàn)此例程序設(shè)計(jì)。解:(1)在VB工程1下新建窗體1,如圖2-18所示。圖2-18例2-1 工程設(shè)計(jì)窗口(2)在屬性窗

54、口設(shè)置窗體屬性:Form1.Caption = “可視化實(shí)例”,F(xiàn)orm1.BackColor= &H00FFC0C0&, 設(shè)計(jì)如圖2-19所示。Form1. FontName = “宋體”,F(xiàn)orm1.FontSize= “三號”,設(shè)計(jì)如圖2-20所示。圖2-19例2-1窗體屬性設(shè)置窗口1圖2-20例2-1窗體屬性設(shè)置窗口2(3)添加控件:添加3個文本框,兩個命令按鈕。 如圖2-21所示。圖2-21例2-1窗體界面設(shè)計(jì)觀察添加的文本框Font屬性與Command按鈕Font屬性同窗體屬性一致。因窗體對控件而言是容器,所以控件的一些屬性對窗體而言,具有繼承性,這個后面程序設(shè)計(jì)還

55、會有體會。如圖2-22所示,為文本框1的Font屬性同窗體1是一樣的。圖2-22窗體與控件之間的繼承性(4)設(shè)置控件的屬性:命令按鈕的 “Caption”屬性和文本框的 “BackColor”屬性,如圖2-23所示。圖2-23 例2-1控件屬性設(shè)置(5)編程策略依題意命令按鈕1的Click事件為清除文本框1的內(nèi)容,即在Command1_Click下代碼為:Text1.Text = "";命令按鈕2的Click事件為結(jié)束程序運(yùn)行即在Command2_Click下代碼為:End。當(dāng)文本框1的內(nèi)容發(fā)生變化時,將文本框1的內(nèi)容變小寫給文本框2;當(dāng)文本框1的內(nèi)容發(fā)生變化時,將文本框1

56、的內(nèi)容變大寫給文本框3。則為引發(fā)文本框1的Change事件,具體代碼為:Text2.Text = LCase(Text1.Text),Text3.Text = UCase(Text1.Text)。(6)編寫代碼Private Sub Command1_Click()'清除文本框1的內(nèi)容Text1.Text = ""End SubPrivate Sub Command2_Click()'結(jié)束EndEnd SubPrivate Sub Text1_Change()'當(dāng)文本框1的內(nèi)容發(fā)生變化時'將文本框1的內(nèi)容變小寫給文本框2Text2.Text = LCase(Text1.Text)'當(dāng)文本框1的內(nèi)容發(fā)生變化時'將文本框1的內(nèi)容變大寫給文本框3Text3.Text = UCase(Text1.Text)End Sub(7)保存實(shí)例的Form文件和工程文件如圖2-24和2-25所示。窗體的文件名為2-1.frm,工程的文件名為2-1.vbp。圖2-24 保存實(shí)例的Form文件圖2-25 保存實(shí)例的工程文件(8)運(yùn)行此實(shí)例,當(dāng)單擊“清除”按鈕時,3個文本框的內(nèi)容均被清除,但在Command1_Click下代碼只為一行:Text1.Text = &quo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論