第一章VisualBasic的基本概念_第1頁
第一章VisualBasic的基本概念_第2頁
第一章VisualBasic的基本概念_第3頁
第一章VisualBasic的基本概念_第4頁
第一章VisualBasic的基本概念_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一1章VisualBasic的基本概念

1.1VisualBasic概述

1.VisualBasic是什么

VisualBasic(簡稱VB)是Microsoft公司開發(fā)的一種通用的基于對(duì)象的程

序設(shè)計(jì)語言。

“Visual”指的是開發(fā)圖形用戶界面(GUI)的方法——不需編寫大量代碼去

描述界面元素的外觀和位置,而只要把預(yù)先建立的對(duì)象add到屏幕上的一點(diǎn)即

可。

"Basic”指的是BASIC(BeginnersAll-PurposeSymbolicInstructionCode)

語言,一種在計(jì)算技術(shù)發(fā)展歷史上應(yīng)用得最為廣泛的語言。VisualBasic在原有

BASIC語言的基礎(chǔ)上進(jìn)一步發(fā)展,至今包含了數(shù)百條語句、函數(shù)及關(guān)鍵詞,其

中很多和WindowsGUI有直接關(guān)系。專業(yè)人員可以用VisualBasic實(shí)現(xiàn)其它

任何Windows編程語言的功能,而初學(xué)者只要掌握幾個(gè)關(guān)鍵詞就可以建立實(shí)用

的應(yīng)用程序。VisualBasicScriptingEdition(VBScript)是廣泛使用的腳本語言,

它是VisualBasic語言的子集,可嵌入HTML語言中,用于網(wǎng)頁設(shè)計(jì),如ASP

(ActiveServerPage)文件。

VB簡單易學(xué),通用性強(qiáng),用途廣泛。

2.VB的功能

VB可以用于可以開發(fā)多媒體、數(shù)據(jù)庫、網(wǎng)絡(luò)、圖形等方面的應(yīng)用程序。

?數(shù)據(jù)訪問特性允許對(duì)包括MicrosoftSQLServer和其它企業(yè)數(shù)據(jù)庫在

內(nèi)的大部分?jǐn)?shù)據(jù)庫格式建立數(shù)據(jù)庫和前端應(yīng)用程序,以及可調(diào)整的服務(wù)器端部

件。

?有了ActiveX(TM)技術(shù)就可使用其它應(yīng)用程序提供的功能,例如

MicrosoftWord字處理器,MicrosoftExcel電子數(shù)據(jù)表及其它Windows應(yīng)用

程序。

Internet能力強(qiáng)大,很容易在應(yīng)用程序內(nèi)通過Internet或intranet訪

問文檔和應(yīng)用程序,或者創(chuàng)建Internet服務(wù)器應(yīng)用程序。

?已完成的應(yīng)用程序是使用VisualBasic虛擬機(jī)真正.exe文件,可以

自由發(fā)布。

3.VB的發(fā)展

VB是伴隨Windows操作系統(tǒng)而發(fā)展的,在中國使用較廣的版本有VB4.0、

VB5.0、VB6.0。

VB4.0是為配合WIN95的問世于1995年推出的,既可用于編寫WIN3.X

平臺(tái)的16位應(yīng)用程序也可編寫WIN95平臺(tái)的32位應(yīng)用程序;VB5.0主要用于

編寫WIN95平臺(tái)的32位應(yīng)用程序,較之VB4.0主要擴(kuò)展了數(shù)據(jù)庫、ActiveX和

Internet方面的功能;VB6.0是與WIN98配合于1998年推出的,進(jìn)一步加強(qiáng)了

數(shù)據(jù)庫、Internet和創(chuàng)建控件方面的功能。

4.VB中幾個(gè)常用術(shù)語

工程(Project):是指用于創(chuàng)建一個(gè)應(yīng)用程序的文件的集合。

對(duì)象(Object):可控制的某個(gè)東西,VB中主要有兩類對(duì)象:窗體和控

件。

窗體(Form):應(yīng)用程序的用戶界面,即windows0

控件(Control):指的是各種按鈕、標(biāo)簽、文本框等。

屬性(Property):是指對(duì)象的特征,如大小、標(biāo)題或顏色。

ActiveX:ActiveX是基于ComponentObjectModel(COM)的可視化控

件結(jié)構(gòu)的商標(biāo)名稱。它是一種封裝技術(shù),提供封裝COM組件并將其置入應(yīng)用

程序(如Web瀏覽器)的一種方法。

ComponentsObjectModel(COM):是軟件組件互相通訊的--種方式。它

是一種二進(jìn)制和網(wǎng)絡(luò)標(biāo)準(zhǔn),允許任意兩個(gè)組件互相通訊,而不管它們是在什么計(jì)

算機(jī)上運(yùn)行(只要計(jì)算機(jī)是相連的),不管各計(jì)算機(jī)運(yùn)行的是什么操作系統(tǒng)(只

要該操作系統(tǒng)支持COM),也不管該組件是用什么語言編寫的。

5.VB的系統(tǒng)特性

(1)工程限制

1)代碼限制:

可被加載到窗體、類或標(biāo)準(zhǔn)模塊的代碼總數(shù)限于65,534行。?行代

碼限于1023個(gè)字節(jié)。在一行中的實(shí)際文本之前最多只能有256個(gè)空格的前

導(dǎo),在個(gè)邏輯行中最多只能有25個(gè)續(xù)行符(_)。

2)過程、類型和變量

對(duì)每個(gè)模塊的過程數(shù)沒有限制。每個(gè)過程可包含至多64K的代碼。如

果過程或模塊超過這一限制,VisualBasic便產(chǎn)生編譯時(shí)間錯(cuò)誤。如果遇到這種

錯(cuò)誤,可將特別大的過程分割成若干個(gè)較小的過程,或?qū)⒛K級(jí)聲明移到另一模

塊,來避免此類錯(cuò)誤發(fā)生。

VisualBasic用表來保存代碼中的標(biāo)識(shí)符名(變量、過程、常量等)。

每個(gè)表限于64K。

3)動(dòng)態(tài)鏈接庫聲明表

每個(gè)窗體和代碼模塊使用一個(gè)描述動(dòng)態(tài)鏈接庫入口點(diǎn)的結(jié)構(gòu)的表。每

個(gè)結(jié)構(gòu)約40個(gè)字節(jié),表的大小限于64K,形成每個(gè)模塊大約有1500個(gè)聲明。

4)工程名表

整個(gè)應(yīng)用程序用一張包含所有名稱的表。這些名稱包括:

常量名、變量名、自定義的類型定義名、模塊名、DLL過程

聲明名。

對(duì)工程名表總大小沒有限制,但是區(qū)分大小寫的條目不得超過32K。

如果超過了32K的限制,可以在不同的模塊中重新使用private標(biāo)識(shí)符以限制

區(qū)分大小寫的條目數(shù)到達(dá)32K。

5)輸入表

在不同的模塊中每引用一個(gè)標(biāo)識(shí)符,便在輸入表中創(chuàng)建個(gè)條目。每

一個(gè)這樣的入口最小是24字節(jié),但限于64K,這樣每個(gè)模塊大約可以有2000

個(gè)引用。

6)模塊條目表

該表中每個(gè)模塊最多達(dá)125個(gè)字節(jié),但有64K的總限制,這樣每

個(gè)工程大約可以產(chǎn)生400個(gè)模塊。

VB中的變量名不多于255個(gè)字符,而窗體、控件、模塊和類名

不多于40個(gè)字符。

(2)工程文件格式

VB在創(chuàng)建和編譯工程時(shí)要產(chǎn)生許多文件,分為:設(shè)計(jì)時(shí)文件、雜項(xiàng)開發(fā)

文件和運(yùn)行時(shí)文件。

設(shè)計(jì)時(shí)文件是工程的建造塊,例如基木模塊(.bas)和窗體模塊(.frm)o

雜項(xiàng)文件是由VisualBasic開發(fā)環(huán)境中的各種不同的進(jìn)程和函數(shù)產(chǎn)生的,

例如打包和展開向?qū)膶傥募?.dep)。

開發(fā)應(yīng)用程序時(shí)會(huì)產(chǎn)生各種設(shè)計(jì)時(shí)文件和其它雜項(xiàng)文件,如下表所歹h

擴(kuò)展名描述擴(kuò)展名描述

.bas基本模塊.frm窗體文件

.cis類模塊.frx二進(jìn)制窗體文件

.res資源文件.vbpVisua1Basic工程文件

.ctx用戶控件的二進(jìn)制文件?Pgx二進(jìn)制屬性頁文件

.dca活動(dòng)的設(shè)計(jì)器的高速緩存.ctl用戶控件文件

.ddf打包和展開向?qū)AB信息.tlb遠(yuǎn)程自動(dòng)化類型庫文件

文件

.dep打包和展開向?qū)膶傥募?vbgVisualBasic組工程文件

.dobActiveX文檔窗體文件.vbl控件許可文件

.doxActiveX文檔二進(jìn)制窗體文.dws部署向?qū)_本文件

.dsr活動(dòng)的設(shè)計(jì)器文件.vbr遠(yuǎn)程自動(dòng)化注冊(cè)文件

.dsx活動(dòng)的設(shè)計(jì)器的二進(jìn)制文件.vbwVisualBasic工程工作空間

文件

.log加載錯(cuò)誤的口志文件.vbz向?qū)Оl(fā)射文件

.oca控件類型庫緩存文件.wetWebClassHTML模板

?pag屬性頁文件

編譯應(yīng)用程序時(shí),所有必須的設(shè)計(jì)時(shí)文件都被包括在運(yùn)行時(shí)可執(zhí)行文件中。運(yùn)行

時(shí)文件如下表所列:

擴(kuò)展名描述

.dll運(yùn)行中的ActiveX部件

.exe可執(zhí)行文件或ActiveX部件

.OCXActiveX控件

.vbdActiveX文檔狀態(tài)文件

.wetWebClassHTML模板

1.2VB6.0的集成開發(fā)環(huán)境簡介

VB集成開發(fā)環(huán)境(IDE------IntegratedDevelopingEnvironment)由以下元素

組成:

1.標(biāo)題欄

用于顯示正在開發(fā)或調(diào)試的工程名和系統(tǒng)的工作狀態(tài)(設(shè)計(jì)態(tài)、運(yùn)行態(tài)、

中止態(tài))。

2.菜單欄

文件9翁輯⑥視圖也)工程國)格式。)調(diào)試也)運(yùn)行如查詢也)圖表Q)工具d)外接程序也)窗口也)幫目

用于顯示所使用的VisualBasic命令。VB6.0標(biāo)準(zhǔn)菜單包括:

3.工具欄

鹿,H?唱|田。|%電圈觸|c>II?|幽囹后智史國于1tlo

在編程環(huán)境下用于快速訪問常用命令。缺省情況下,啟動(dòng)VB后顯示“標(biāo)

準(zhǔn)”工具欄,附加的編輯、窗體設(shè)計(jì)和調(diào)試的工具欄可以從“視圖”菜單上的

“工具欄”命令中移進(jìn)或移出。

4.窗體設(shè)計(jì)器

用來設(shè)計(jì)應(yīng)用程序的界面。啟動(dòng)VB后,窗體設(shè)計(jì)器中自動(dòng)出現(xiàn)一個(gè)名為

Forml的空白窗體,可以在該窗體中添加控件、圖形和圖片等來創(chuàng)建所希望的外

觀,窗體的外觀設(shè)計(jì)好后,從菜單中選擇“文件”-“保存窗體”~在保存對(duì)話

框中給出合適的文件名(注意擴(kuò)展名),并選擇所需的保存位置一確定。需要再

設(shè)計(jì)另一個(gè)窗體時(shí),單擊工具欄上的“添加窗體”按鈕即可。

5.控件(工具)箱

由一組控件按鈕組成,用于設(shè)計(jì)時(shí)在窗體中放置控件。除了缺省的工具箱布

局之外,還可以通過從上下文菜單中選定“添加選項(xiàng)卡”并在結(jié)果選項(xiàng)卡中添加

控件來創(chuàng)建自定義布局。

6.彈出式(上下文)菜單

在要使用的對(duì)象上單擊鼠標(biāo)右鍵即可打開快捷菜單,其上會(huì)出現(xiàn)與當(dāng)前對(duì)象

相關(guān)的經(jīng)常執(zhí)行的操作,以加快操作速度。

7.工程管理器窗口

用于瀏覽工程中所包含的窗體和模塊,還可以從中查看代碼、查看對(duì)象。

8.屬性窗口

是VB中一個(gè)比較復(fù)雜的窗口,其中列出了對(duì)選定窗體和控件的屬性設(shè)置

值。VB中正是通過改變屬性來改變對(duì)象的特征,如大小、標(biāo)題或顏色。

9.對(duì)象瀏覽器

列出工程中有效的對(duì)象,并提供在編碼中漫游的快速方法??梢允褂谩皩?duì)象

瀏覽器”瀏覽在VB中的對(duì)象和其它應(yīng)用程序,查看對(duì)那些對(duì)象有效的方法和

屬性,并將代碼過程粘貼進(jìn)自己的應(yīng)用程序。

10.對(duì)象瀏覽器

右擊窗體中的對(duì)象、從工程管理器中點(diǎn)“查看代碼”按鈕。

11.窗體布局窗口

FormLayoutwindow允許使用表示屏幕的小圖象來布置應(yīng)用程序中各窗體

的位置。

12.立即、本地和監(jiān)視窗口這些附加窗口是為調(diào)試應(yīng)用程序提供的,它們只在

IDE之中運(yùn)行應(yīng)用程序時(shí)才有效。

1.3面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念

1.基本術(shù)語

(1)對(duì)象和對(duì)象類

對(duì)象是代碼和數(shù)據(jù)的組合,可以作為一個(gè)單位來處理。對(duì)象可以是應(yīng)用程序

的一部分,比如可以是控件或窗體。整個(gè)應(yīng)用程序也是一?個(gè)對(duì)象。在VB中可

能用到的兒種類型的對(duì)象:

示例描述

命令按鈕窗體上的控件,象命令按鈕和框架,它們都是對(duì)象。

窗體VisualBasic工程中的每一個(gè)窗體都是獨(dú)立的對(duì)象。

數(shù)據(jù)庫數(shù)據(jù)庫是對(duì)象,并且還包含其他對(duì)象,如字段、索引等。

圖表MicrosoftExcel中的圖表是對(duì)象。

VB中的每個(gè)對(duì)象都是用類定義的。用餅干模子和餅干之間的關(guān)系作比,就會(huì)

明白對(duì)象和它的類之間的關(guān)系。餅干模子是類。它確定了每塊餅干的特征,比如

大小和形狀。用類創(chuàng)建對(duì)象,對(duì)象就是餅干。類是面向?qū)ο蟪绦蛟O(shè)計(jì)的核心技術(shù),

可以理解成一種定義了對(duì)象行為和外觀的模板;把對(duì)象看作是類的原原木本的復(fù)

制品,

類具有繼承性、封裝性、多態(tài)性、抽象性。

(2)屬性

屬性是對(duì)對(duì)象特性的描述,VB為每一類對(duì)象都規(guī)定了若干屬性,設(shè)計(jì)中可

以改變具體對(duì)象的屬性值。比如窗體的背景顏色、高度與寬度。

(3)事件(Event)

事件是發(fā)生在對(duì)象上的動(dòng)作。事件的發(fā)生不是隨意的,某些事件僅發(fā)生在某

些對(duì)象上。

在VB中事件的調(diào)用形式是:

PrivateSub對(duì)象名_事件名

(事件內(nèi)容)

EndSub

(4)方法(Method)

方法指的是控制對(duì)象動(dòng)作行為的方式。它是對(duì)象本身內(nèi)含的函數(shù)或過程,

它也是一個(gè)動(dòng)作,是一個(gè)簡單的不必知道細(xì)節(jié)的無法改變的事件,但不稱作事件;

同樣,方法也不是隨意的,一些對(duì)象有一些特定的方法。在VB里方法的調(diào)用形

式是:

對(duì)象名.方法名

2.屬性、方法和事件之間的關(guān)系

VB對(duì)象具有屬性、方法和事件。屬性是描述對(duì)象的數(shù)據(jù);方法告訴對(duì)象應(yīng)

做的事情;事件是對(duì)象所產(chǎn)生的事情,事件發(fā)生時(shí)可以編寫代碼進(jìn)行處理。

VB的窗體和控件是具有自己的屬性、方法和事件的對(duì)象??梢园褜傩钥醋?/p>

一個(gè)對(duì)象的性質(zhì),把方法看作對(duì)象的動(dòng)作,把事件看作對(duì)象的響應(yīng)。

日常生活中的對(duì)象,如小孩玩的氣球同樣具有屬性、方法和事件。氣球的屬

性包括可以看到的一些性質(zhì),如它的直徑和顏色。其它一些屬性描述氣球的狀態(tài)

(充氣的或未充氣的)或不可見的性質(zhì),如它的壽命。通過定義,所有氣球都具

有這些屬性;這些屬性也會(huì)因氣球的不同而不同。

氣球還具有本身所固有的方法和動(dòng)作。如:充氣方法(用氯氣充滿氣球的動(dòng)

作),放氣方法(排出氣球中的氣體)和上升方法(放手讓氣球飛走)。所有的

氣球都具備這些能力。

氣球還有預(yù)定義的對(duì)某些外部事件的響應(yīng)。例如,氣球?qū)Υ唐扑氖录憫?yīng)

是放氣,對(duì)放手事件的響應(yīng)是升空。

在VB程序設(shè)計(jì)中,基本的設(shè)計(jì)機(jī)制就是:改變對(duì)象的屬性、使用對(duì)象的方法、

為對(duì)象事件編寫事件過程。程序設(shè)計(jì)時(shí)要做的工作就是決定應(yīng)更改哪些屬性、調(diào)

用哪些方法、對(duì)哪些事件作出響應(yīng),從而得到希望的外觀和行為。

3.事件驅(qū)動(dòng)模型

在傳統(tǒng)的或“過程化”的應(yīng)用程序中,應(yīng)用程序自身控制了執(zhí)行哪一部分代

碼和按何種順序執(zhí)行代碼。從第一行代碼執(zhí)行程序并按應(yīng)用程序中預(yù)定的路徑執(zhí)

行,必要時(shí)調(diào)用過程。

在事件驅(qū)動(dòng)的應(yīng)用程序中,代碼不是按照預(yù)定的路徑執(zhí)行,而是在響應(yīng)不同

的事件時(shí)執(zhí)行不同的代碼片段。事件可以由用戶操作觸發(fā)、也可以由來自操作系

統(tǒng)或其它應(yīng)用程序的消息觸發(fā)、甚至由應(yīng)用程序本身的消息觸發(fā)。這些事件的順

序決定了代碼執(zhí)行的順序,因此應(yīng)用程序每次運(yùn)行時(shí)所經(jīng)過的代碼的路徑都是不

同的。

因?yàn)槭录捻樞蚴菬o法預(yù)測的,所以在代碼中必須對(duì)執(zhí)行時(shí)的“各種狀態(tài)”

作一定的假設(shè)。當(dāng)作出某些假設(shè)時(shí)(例如,假設(shè)在運(yùn)行來處理某一輸入字段的過

程之前,該輸入字段必須包含確定的值),應(yīng)該組織好應(yīng)用程序的結(jié)構(gòu),以確保

該假設(shè)始終有效(例如,在輸入字段中有值之前禁止使用啟動(dòng)該處理過程的命令

按鈕)=

在執(zhí)行中代碼也可以觸發(fā)事件。例如,在程序中改變文本框中的文本將引發(fā)

文本框的Change事件。如果Change事件中包含有代碼,則將導(dǎo)致該代碼的

執(zhí)行。如果原來假設(shè)該事件僅能由用戶的交互操作所觸發(fā),則可能會(huì)產(chǎn)生意料之

外的結(jié)果。正因?yàn)檫@一原因,所以在設(shè)計(jì)應(yīng)用程序時(shí)理解事件驅(qū)動(dòng)模型并牢記在

心是非常重要的。

4.交互式開發(fā)

傳統(tǒng)的應(yīng)用程序開發(fā)過程可以分為三個(gè)明顯的步驟:編碼、編譯和測試代碼。

但是VisualBasic與傳統(tǒng)的語言不同,它使用交互式方法開發(fā)應(yīng)用程序,使三

個(gè)步驟之間不再有明顯的界限。

VB在編程者輸入代碼時(shí)便進(jìn)行解釋,即時(shí)捕獲并突出顯示大多數(shù)語法或拼寫

錯(cuò)誤??雌饋砭拖笠晃粚<以诒O(jiān)視代碼的輸入。

除即時(shí)捕獲錯(cuò)誤以外,VB也在輸入代碼時(shí)部分地編譯該代碼。當(dāng)準(zhǔn)備運(yùn)行

和測試應(yīng)用程序時(shí),只需極短時(shí)間即可完成編譯。如果編譯器發(fā)現(xiàn)了錯(cuò)誤,則將

錯(cuò)誤突出顯示于代碼中。這時(shí)可以更正錯(cuò)誤并繼續(xù)編譯,而不需從頭開始。

由于VB的交互特性,代碼運(yùn)行的效果可以在開發(fā)時(shí)進(jìn)行測試,而不必等到

編譯完成以后。

1.4利用VB開發(fā)應(yīng)用程序的一般步驟

一個(gè)VB程序也稱為一個(gè)工程,由窗體、標(biāo)準(zhǔn)模塊、自定義控件及應(yīng)用所需的環(huán)

境設(shè)置組成。開發(fā)步驟一般如下:

1.創(chuàng)建程序的用戶界面

2.設(shè)置界面上各個(gè)對(duì)象的屬性

3.編寫對(duì)象響應(yīng)事件的程序代碼

4.保存工程

5.測試應(yīng)用程序,排除錯(cuò)誤

6.創(chuàng)建可執(zhí)行程序

1.5創(chuàng)建VB程序示例

實(shí)例名稱:VB歡迎你!

1.創(chuàng)建程序的用戶界面

2.設(shè)置界面上各個(gè)對(duì)象的屬性

控件屬性設(shè)置值

OptionlCaption上課

Option!Caption復(fù)習(xí)

BackCoIor&H00C0E0FF&

Forecolor&H00FF0000&

Font宋體小四

LabellCaption歡迎你學(xué)習(xí)VB!!

Forecolor&H000000FF&

Font隸書、二號(hào)

AutoSizeTrue(自動(dòng)調(diào)整外框大?。?/p>

BackStyleO-Transparent(透明)

CommandlCaption學(xué)習(xí)之道

3.編寫對(duì)象響應(yīng)事件的程序代碼

雙擊各對(duì)象,在相應(yīng)的代碼窗口里輸入需要的代碼。

事件名稱過程代碼

PrivateSubCommandl_Click()

Option1.Visible=True

Option2.Visible=True

命令按鈕的單擊事件

Label1.ForeColor=RGB(0,0,255)

Labell.Caption="???”

EndSub

PrivateSubForm_Click()

Form1.Picture=LoadPicture(Hd:\sj\abc.jpgH)

窗體的單擊事件

Option1.Visible=False

Option2.Visible=False

Label1.ForeColor=RGB(255,0,0)

Label1.Caption="預(yù)祝大家成功,干杯!"

EndSub

PrivateSubForm_DblClick()

Form1.Picture=LoadPicture("H)

窗體的雙擊事件

Labell.Caption=0歡迎你學(xué)習(xí)VB!!"

EndSub

PrivateSubOptionl_Click()

選項(xiàng)按鈕1的單擊事

Labell.Caption="看清楚聽明白記下來”

EndSub

PrivateSubOption2_Click()

選項(xiàng)按鈕2的單擊事

Labell.Caption="多上機(jī)勤思考善提問”

EndSub

|FJI工程1-Forml(Code)

|CoBBandl▼||Click二J

PrivateSubCommandl_C1ick()

Optionl.Visible=True

0ption2.Visible=True

Labell.ForeColor=RGB。0,255)

Labell.Caption="???"

EndSub

PrivateSubForm_Click()

Forml.Picture=LoadPicture(*d:\sj\abc.jpg*)

Optionl.Visible=False

0ption2.Visible:False

Labell.ForeColor=RGB(255,0.0)

Labell.Caption="預(yù)祝大家成功,干杯?“

EndSub

PrivateSubForm__DblClick0

Forml.Picture=LoadPictureC**)

Labell.Caption="歡迎你學(xué)習(xí)VB??”

EndSub

PrivateSubOptionlClick0

Labell.Caption="看清楚聽明白記下來.

EndSub

PrivateSubOption2Click()

Labell.Caption="多上機(jī)勃思考善提問"

EndSub

J-

4.保存工程

(1)從文件菜單中選擇保存窗體,將窗體保存成vbwelcomeyou.frm

(2)從文件菜單中選擇保存工程,將工程保存成vbwelcomeyou.vbp

5.測試應(yīng)用程序,排除錯(cuò)誤

根據(jù)設(shè)想的效果調(diào)試程序,直到滿足要求為止。

6.創(chuàng)建可執(zhí)行程序

從文件菜單中選擇生成vbwelcomeyou.exe,既可生成一個(gè)可執(zhí)行文件。

注意:設(shè)計(jì)中遇到問題可以查閱MSDN的幫助文件。

第二章VB的界面設(shè)計(jì)

2.1VB用戶界面設(shè)計(jì)基礎(chǔ)

1.概述

界面的設(shè)計(jì)有兩步:先繪制控件,然后確定控件屬性。

繪制控件:在工具箱里單擊想畫的控件,在窗體里按下鼠標(biāo)并拖曳,然后松開鼠標(biāo)即可。確

定屬性:先選中控件,然后按F4鍵或單擊工具欄上的屬性窗口進(jìn)入屬性(Properties)窗口,再

在屬性窗口中找到要設(shè)置的屬性井進(jìn)行設(shè)置。

2.常用屬性的設(shè)置

(1)Name屬性

對(duì)象都有名字,計(jì)算機(jī)把名字看成對(duì)象于對(duì)象之間的根本差異,因此在同一窗體里不許出現(xiàn)重

名的情況(除非這是一個(gè)控件數(shù)組),且名字不得超過40個(gè)字。

在簡單的程序里,給控件命名不是很必要,完全可以使用控件Name屬性的缺省值。例如TextK

但在有幾十個(gè)控件的復(fù)雜窗體里,就很難區(qū)分它們。所以,VB推薦由三個(gè)小寫字母的前綴和一

個(gè)第一?個(gè)字母為大寫的描述性單詞組成的名字。例如cmdMyButton是??個(gè)命令按鈕(前綴是cmd)

推薦的前綴

對(duì)象前綴例子

確認(rèn)框(CheckBox)chkchkCareerChioce

組合框(ComboBox)cbocboCrimesCommitted

命令鈕(CommandButton)cmdcmdExit

數(shù)據(jù)庫捽件(DataControl)datdatTopSecretlnfo

目錄列表框(DirectoryListBox)dirdirTree

驅(qū)動(dòng)器列表框(DriveListBox)drvdrvHardDisk

文件列表框(FileListBox)filfilDocuments

窗體(Form)frmfrm1040Tax

框架(Frame)frafraGroupButtons

水平滾動(dòng)條(HorizontalScrollBar)hsbhsbTemperature

圖形(Image)imgimgPrettyDrawing

標(biāo)簽(Label)IblIblFakeName

線(Line)linlinBorder

列表框(ListBox)1stIstCandidates

菜單(Menu)mnumnuHamAndEggs

選項(xiàng)鈕(OptionButton)optoptStationlOl

圖形框(PictureBox)picpicPrettyPicture

幾何圖形(Shape)卜hpshpUpOrShipOut

文本框(TextBox)txtWarning

垂直滾動(dòng)條(VerticalScrollBar)|vsbvsbMoneyRaised

(2)Caption屬性

Caption即標(biāo)題,是可以在對(duì)象外觀上直接看見的文木,可以長達(dá)255字符,包括空格和標(biāo)點(diǎn)

符號(hào),比如--個(gè)叫cmdOk的命令鈕,它的Caption屬性就可以是"0k"。注意:并不是所有的

對(duì)象都有此屬性,比如文本框、圖片框、線條等就沒有。

為按鈕設(shè)置熱鍵:在設(shè)置C叩lion屬性時(shí),在需要加下劃線的字母前加上符號(hào),例如

“&File",輸出的就是“Eile",這樣就可以通過按ALT鍵和標(biāo)題上那個(gè)帶下劃線的字母來選取它

了,不必為此編任何代碼。

Name和caption的比較:

1)Name是系統(tǒng)用來識(shí)別對(duì)象的,編程時(shí)需要用它來指代各對(duì)象;Caption是給用戶看的,

提示用戶該對(duì)象的作用;

2)Name可以采用系統(tǒng)默認(rèn)的名稱,但Caption應(yīng)該根據(jù)實(shí)際情況改成意義明了的名詞;

3)所有對(duì)象都有Name,但不一定都有Caption;

(3)Top,Left屬性

這兩個(gè)屬性決定對(duì)象的位置。只有兩種情況需要在屬性窗口里設(shè)置這兩個(gè)屬性:第一種是用

戶沒有鼠標(biāo),第二種是程序員需要十分精確地設(shè)定這兩個(gè)值。當(dāng)選中對(duì)象,單擊并拖曳它的時(shí)候,

便在修改這兩個(gè)值了。

(4)Height,Width屬性

這兩個(gè)屬性決定了對(duì)象的大小,當(dāng)選中控件時(shí),它周圍出現(xiàn)八個(gè)小黑方塊,把鼠標(biāo)指向這些

方塊,鼠標(biāo)指針將變成?個(gè)雙向的箭頭,這時(shí)按下鼠標(biāo)并拖曳它,即可改變控件的大小,也就改

變了Height,Width屬性。

2.2創(chuàng)建窗體

1.窗體的屬性

(1)常用屬性簡介

1屬性名稱說明

系統(tǒng)識(shí)別窗體的標(biāo)識(shí)名,?個(gè)窗體名必須以個(gè)字母開頭,可

Name窗體名稱

包含數(shù)字和卜劃線,但不能包含空格和標(biāo)點(diǎn)符號(hào)。

Caption窗體標(biāo)題出現(xiàn)在窗體標(biāo)題欄中的文本內(nèi)容

這個(gè)屬性是用戶經(jīng)常要使用的一種屬性。當(dāng)用戶的應(yīng)用程序在

工具條上最小化或在Windows桌面上變?yōu)橐粋€(gè)獨(dú)立應(yīng)用程序

Icon窗體圖標(biāo)

時(shí),該屬性決定將采用何種圖標(biāo),窗體控制框里的圖標(biāo)也由它

決定。

BackColor窗體背景色可以從屬性框里彈出調(diào)色板,選擇所需要的顏色

ForeColor窗體前景色窗體上打印文字的顏色

這個(gè)屬性決定了窗體邊框的樣式,共有6種屬性值。改變窗體

BorderStylc邊框風(fēng)格的BordrStyle屬性后,窗體在屏幕上沒有變化,它只在運(yùn)行

時(shí)才變?yōu)樗蟮臉幼印?/p>

Apearance外形這個(gè)屬性用來決定控件是否采用三維效果

控件按鈕控件

ControlBox用來決定是否采用控件框的屬性,僅在程序運(yùn)行時(shí)才有效。

按鈕

用來改變?cè)摯绑w上顯示信息的字體、字型和字號(hào),它控制著直

Font字體

接在窗體上打印的文本顯示。

該屬性決定窗體是否可見,默認(rèn)情況下是可見的。錯(cuò)誤地改變

Visible可見性

其值是很危險(xiǎn)的,窗體會(huì)從眼前消失,

WindowState窗體狀態(tài)指定窗體在運(yùn)行時(shí)的三種狀態(tài):正常、最小化、最大化。

Enabled活動(dòng)性默認(rèn)值為True,決定窗體能否被訪問。

"ft、Top、左邊距、頂邊

Height、距、高度、寬決定窗體在屏幕上的位置及窗體大小。

|Width度

(2)設(shè)置屬性的方法

1)在設(shè)計(jì)態(tài)通過屬性窗口設(shè)置

直接在屬性窗口中選擇或輸入既可。

2)在程序代碼中改變屬性值

代碼中的格式為:對(duì)象名.屬性=屬性值

例:Forml.BackColor=RGB(255,0,0)

2.窗體的常用方法

(1)Hide方法

用以隱藏MDIForm或Form對(duì)象,但不能使其卸載。

語法:object.Hide

object所在處代表一個(gè)對(duì)象表達(dá)式,其值為“應(yīng)用于”列表中的一個(gè)對(duì)象。如果省略

object,則帶有焦點(diǎn)的窗體就認(rèn)為是該object。

說明:

?隱藏窗體時(shí),它就從屏幕上被刪除,并將其Visible屬性設(shè)置為False。用戶將無

法訪問隱藏窗體上的控件,但是對(duì)于運(yùn)行中的VisualBasic應(yīng)用程序,或?qū)τ谕ㄟ^DDE與該

應(yīng)用程序通訊的進(jìn)程及對(duì)于Timer控件的事件,隱藏窗體的控件仍然是可用的。

?窗體被隱藏時(shí),用戶只有等到被隱藏窗體的事件過程的全部代碼執(zhí)行完后才能夠與該

應(yīng)用程序交互。

?如果調(diào)用Hide方法時(shí)窗體還沒有加載,那么Hide方法將加載該窗體但不顯示它。

(2)Move方法

用以移動(dòng)MDIForm、Form或控件。

語法:object.Moveleft,top,width,height

Move方法的語法包含下列部分:

部分描述

object可選的。一個(gè)對(duì)象表達(dá)式,其值為“應(yīng)用于”列表中的一個(gè)對(duì)象。如果省略object,

帶有焦點(diǎn)的窗體缺省為object。

left必需的。單精度值,指示object左邊的水平坐標(biāo)(x-軸)。

top可選的。單精度值,指示object頂邊的垂直坐標(biāo)(y-軸)。

Width可選的。單精度值,指示object新的寬度。

height可選的。單精度值,指示object新的高度。

說明:只有l(wèi)eft參數(shù)是必須的。但是,要指定任何其它的參數(shù),必須先指定出現(xiàn)在語法中

該參數(shù)前面的全部參數(shù)。例如,如果不先指定left和top參數(shù),則無法指定width參數(shù)。任何

沒有指定的尾部的參數(shù)則保持不變。

(3)Print方法

在Immediate窗口中顯示文本。

語法:object.Print[outputlist]

Print方法的語法具有下列對(duì)象限定符和部分:

部分描述

object必需的。對(duì)象表達(dá)式,其值為“應(yīng)用于”列表中的對(duì)象。

outputlist可選的。要打印的表達(dá)式或表達(dá)式的列表。如果省略,則打印一空白行。

outputlist參數(shù)具有以下語法和部分:

{Spc(n)ITab(n)}expressioncharpos

部分描述

Spc(n)可選的。用來在輸出中插入空白字符,這里,n為要插入的空白字符數(shù)。

可選的。用來將插入點(diǎn)定位在絕對(duì)列號(hào)上,這里,n為列號(hào)。使用無參數(shù)的Tab(n)

Tab(n)

將插入點(diǎn)定位在下一個(gè)打印區(qū)的起始位置。

expression可選。要打印的數(shù)值表達(dá)式或字符串表達(dá)式。

可選。指定下個(gè)字符的插入點(diǎn)。使用分號(hào)(;)直接將插入點(diǎn)定位在上一個(gè)被顯示

的字符之后。使用Tab(n)將插入點(diǎn)定位在絕對(duì)列號(hào)上。使用無參數(shù)的Tab將插

Charpos

入點(diǎn)定位在下一個(gè)打印區(qū)的起始位置。如果省略charpos,則在下一行打印下一

字符。

說明:

?可以用空白或分號(hào)來分隔多個(gè)表達(dá)式。

?對(duì)系統(tǒng)指定的國別設(shè)置,用小數(shù)點(diǎn)分隔符將所有打印到Immediate視窗的數(shù)據(jù)正確

格式化。關(guān)鍵字要用適用于主應(yīng)用程序的語言輸出。

?對(duì)于Boolean數(shù)據(jù),或者打印True或者打印False。根據(jù)主機(jī)應(yīng)用程序的地區(qū)設(shè)置來

翻譯True和False關(guān)鍵字。

?使用系統(tǒng)能識(shí)別的標(biāo)準(zhǔn)短日期格式書寫Date數(shù)據(jù)。當(dāng)日期或時(shí)間部件丟失或?yàn)榱銜r(shí),

只書寫已提供的部件。

?如果outpullist數(shù)據(jù)是Empty,則無內(nèi)容可寫。但是,如果outpullist數(shù)據(jù)是Null,

則輸出Null。在輸出Null關(guān)鍵字時(shí),要把關(guān)鍵字正確翻譯出來。

?要把錯(cuò)誤數(shù)據(jù)作為Errorerrorcode輸出。在輸出Error關(guān)鍵字時(shí),要把關(guān)鍵字正確翻

譯出來。

?如果在具有缺省顯示空間的模塊外使用此方法,則需要object。例如,如果沒有指定對(duì)

象就在標(biāo)準(zhǔn)模塊上調(diào)用此方法,則將導(dǎo)致錯(cuò)誤發(fā)生,但是,如果在窗體模塊上進(jìn)行調(diào)用,則會(huì)在

窗體上顯示“outputlist”。

注意:因?yàn)镻rint方法是按照字符比例進(jìn)行打印,所以字符數(shù)與字符所占據(jù)的寬度固定的

列的數(shù)目無關(guān)。例如,像“W”這樣的寬字母占據(jù)的寬度超過一固定列寬,而像"i"這樣的窄字

母占據(jù)的寬度則較小??紤]到要使用比平均字符更寬的空間,表列一定要留有足夠余地。另外,

也可以使用固定間距的字體(像Courier字體)來確保每一?字符均只占一列。

(4)PrintFrom方法

用以將Form對(duì)象的圖象逐位發(fā)送給打印機(jī)。

語法;object.PrintForm

說明:PrintForm將打印Form對(duì)象的全部可見對(duì)象和位圖。在繪制圖形時(shí),如果

AuloRedraw屬性為True,則在運(yùn)行時(shí)PrintForm將打印Form對(duì)象或PictureBox控件上的圖

形。

?PrintForm所使用的打印機(jī)是由操作系統(tǒng)的控制面板中的設(shè)置來決定。

(5)Refresh方法

強(qiáng)制全部重繪一個(gè)窗體或控件。

語法:object.Refresh

說明:在下列情況下使用Refresh方法:

?在另?個(gè)窗體被加載時(shí)顯示?個(gè)窗體的全部。

?更新諸如FileListBox控件之類的文件系統(tǒng)列表框的內(nèi)容。

?更新Data控件的數(shù)據(jù)結(jié)構(gòu)。

Refresh方法不能用于MDI窗體,但能用于MDI子窗體。不能在Menu或Timer

控件上使用Refresh方法。

通常,如果沒有事件發(fā)生,窗體或控件的繪制是自動(dòng)處理的。但是,有些情況下希望窗體

或控件立即更新。例如,如果使用文件列表框、目錄列表框或者驅(qū)動(dòng)器列表框顯示當(dāng)前的目錄結(jié)

構(gòu)狀態(tài),當(dāng)目錄結(jié)構(gòu)發(fā)生變化時(shí)可以使用Refresh更新列表。

可以在Data控件上使用Refresh方法來打開或重新打開數(shù)據(jù)庫(如果DatabaseName,

Readonly,Exclusive或Connect屬性的設(shè)置值發(fā)生改變),并能重建控件的Recordset屬性內(nèi)

的dynaseto

(6)Show方法

用以顯示MDIForm或Form對(duì)象。

語法:object.Showstyle,ownerform

Show方法的語法包含下列部分:

部分描述

object可選的。一個(gè)對(duì)象表達(dá)式,其值為“應(yīng)用于”列表中的一個(gè)對(duì)象。如果省略

object,則與活動(dòng)窗體模塊關(guān)聯(lián)的窗體缺省為object。

Style可選的。一個(gè)整數(shù),它用以決定窗體是模式

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論