Visual Basic知識點與習題_第1頁
Visual Basic知識點與習題_第2頁
Visual Basic知識點與習題_第3頁
Visual Basic知識點與習題_第4頁
Visual Basic知識點與習題_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第一章VisualBasic導論

【學習目的和要求】

1.掌握面向?qū)ο蟪绦蛟O計方法的基本概念。

2.掌握建立VisualBasic應用程序的一般步驟和方法。

3.熟悉VisualBasic的集成開發(fā)環(huán)境。

【學習要點】

一.面向?qū)ο蟮某绦蛟O計方法基礎

1.關于VisualBasic

面向?qū)ο蟪绦蛟O計到底是什么含義,我們從VisualBasic的名字上來看,就可以得到許

多關于這一方面的信息。首先是“Visual",“Visual”一詞在詞典上的含義是“看的、視覺

的、用于看的”,引申到計算機程序設計領域中就變?yōu)椤翱梢暬某绦蛟O計",Microsoft公

司的其他冠以Visual的產(chǎn)品大都含有這個意思,例如VisualFoxPro、VisualC++、VisualJ++

等等。那么什么是“可視化的程序設計”呢?它指的是一種開發(fā)圖形用戶界面(GraphicalUser

Interface、簡稱GUI)的方法,使用這種程序設計方法,程序員無須編寫大量代碼去描述

界面元素的外觀和位置,只要把預先建立的界面元素(例如命令按鈕、列表框等)用鼠標拖

放到屏幕上適當?shù)奈恢蒙霞纯?。如果用戶使用過諸如“計算器”之類的應用程序,那么他實

際上已經(jīng)掌握了創(chuàng)建用戶界面的必要技巧。

圖1T“計算器”應用程序的界面

圖1-1是WindowsXP操作系統(tǒng)自帶的一個應用程序“計算器”的界面。在VisualBasic

集成環(huán)境中,用戶可以不用編寫一行程序,僅僅使用鼠標就可以創(chuàng)建一個如上圖所示的

Windows應用程序的界面,當然僅有界面的這個程序還不會對用戶做的任何選擇做出反應,

如果真得要使程序具有“計算器”的能力,我們就需要用到第二個單詞——“Basic”了。

等我們學完本門課程,完全有能力開發(fā)出這樣一個實用的小程序。

即使計算機技術發(fā)展到今天這種局面,在計算機領域里單詞“Basic”也仍然里如雷貫

耳、婦孺皆知,這是因為Basic語言是迄今為止在計算機技術發(fā)展歷史上應用最為廣泛的一

種語言。在全世界、會使用Basic語言編程的人員數(shù)以百萬計,就連Microsoft公司的總裁

Gates在剛出道時也曾是一個Basic程序員(也許正是因為這一點,Gates才會對Basic語言

情有獨鐘,花大力氣去發(fā)展VisualBasic)。僅此一點,就注定了VisualBasic會擁有龐大的

用戶群。

VisualBasic在原有BASIC語言的基礎上進一步發(fā)展,至今已經(jīng)包含了數(shù)百條語句、函

數(shù)及關鍵詞,其中很多和WindowsGUI有直接關系。專業(yè)人員可以用VisualBasic實現(xiàn)其他

任何Windows編程語言的功能,而初學者只要掌握幾個關鍵詞就可以建立實用的應用程序。

所以,Visual和Basic這兩個單詞連在一起,就可以從中得到關于它的一個簡單的概念一

使用Basic語言進行可視化程序設計的開發(fā)工具。VisualBasic自從1991年推出后,因為界

面友好、簡單易用,因而得到了迅速推廣,目前比較流行使用的版本是VisualBasic6.0。使

用VisualBasic不僅可以方便地開發(fā)一般的Windows應用程序,進行多媒體和數(shù)據(jù)庫應用系

統(tǒng)的開發(fā)也同樣可以得心應手。本書后面我們將VisualBasic統(tǒng)一簡稱為VB。

2.面向?qū)ο蟪绦蛟O計的基本概念

1)對象(Object)

在新一代Windows程序開發(fā)工具中,幾乎都具有面向?qū)ο螅∣bjectOriented)特性,Visual

Basic自然也不例外。在用VB開發(fā)應用程序的過程中,事實上就是圍繞著對象來進行,那

么到底什么是對象呢?

可以把對象想象成日常生活中的各種物體,例如:書籍、汽車等,這些都可以稱為對象。

以汽車來說吧,每輛汽車本身是?個對象,而汽車又是由許多對象組成的,例如:輪胎、引

擎、車燈、方向盤等,每一個零件都是個對象,對象中還可以包含其它對象。與汽車的概

念相類似,在VB程序中,窗體(Form)、命令按鈕(CommandButton)、歹U表框(ListBox)

等都是對象。在程序設計的過程中,這些對象就是程序的主角。如圖1-2所示。

窗體對象

命令按鈕對象

列表框?qū)ο?/p>

圖1-2窗體、命令按鈕、列表框?qū)ο?/p>

2)屬性(Property)

每一個對象都有其相應的特性,在計算機程序設計語言中被稱作屬性。仍然以汽車來說

吧,與它相關的屬性數(shù)據(jù)有:顏色、長度、寬度、馬力、是否有安全氣囊,乘坐人數(shù)等。記

錄這些屬性數(shù)據(jù)的地方就叫做屬性欄。屬性欄中所記錄的屬性數(shù)據(jù)叫做屬性值。我們都知道,

不同款式的汽車會有不同的長度、寬度,也就是說,同一類對象雖然擁有相同的屬性欄,但

其屬性值卻有可能不同。例如兩輛汽車都有顏色的屬性,其中一輛是紅色,另外一輛是黑色,

那么兩輛汽車對應顏色這個屬性的屬性值分別就是“紅色”和“黑色”。屬性名和屬性值的

概念如圖1-3所示。

屬性名

屬性值

圖1-3屬性窗口、屬性名和屬性值

3)類(Class)

我們剛剛提到“同一類對象擁有相同的屬性欄”,其實更加準確的說法應該是“同一類

對象的大部分屬性欄相同二為什么這樣說呢?例如,拿般的車子與坦克車來比較,雖然

都有車長、車寬的屬性欄,但是坦克車就會多出一些記錄大炮口徑、履帶形式的屬性欄。如

果兩個對象間的屬性欄差異太大,那么,它們根本不能算是同一類對象。例如汽車和樹木,

它們就不能算是同一類對象,這些形形色色的對象分別屬于不同的種類,這就是所謂的類。

還有一個典型的例子,那就是人類,每一個人都是一個具體的對象,所有人共同構成了

人類。顯而易見,對象應當是類的一個實例。

4)方法(Method)

對象除了具有屬性之外,還包含了一些控制對象的動作或功能,稱作對象的方法。所謂

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

是一個簡單的不必知道細節(jié)的無法改變的事件,但不被稱作事件;同樣,方法也不是隨意的,

一些對象有一些特定的方法。在VB中方法的調(diào)用形式是:

對象名.方法名

以汽車為例,假設車子這個對象中共有五個動作,分別是放開手制動、踩油門、踩離合

器、放開離合器、掛檔。如果我們要車子從靜止狀態(tài)啟動,就可以組合這五個動作:

A.放開手制動

B.踩離合器

C.掛檔

D.放開離合器

E.踩油門

這樣,車子就能順利啟動。這五個動作都是車子這個對象所提供的功能,以程序設計的

專業(yè)術語來說,這就是對象所提供的方法。方法是用來控制對象操作的內(nèi)部程序。方法如同

工具一樣,設計者借助它們用程序來控制對象。

現(xiàn)在,已經(jīng)對類、對象、屬性、方法等名詞有了基本的認識,我們再來看看在VB中的

情形。在VB中提供了很多類和對象,例如:Form、命令按鈕、文本框、滾動條等,它們

各自擁有許多的屬性和方法。我們可以在這些對象的屬性欄中填入屬性值,也可以運用這些

對象的方法來控制對象,這就是VB程序設計的基礎。

5)事件(Event)

對某個對象來說,事件就是發(fā)生在該對象上.的事情。事件的發(fā)生不是隨意的,某些事件

僅發(fā)生在某些對象上。VB中提供了很多對象,每種對象會響應相關的事件,供程序設計者

利用它們設計出應用程序。例如,命令按鈕就是一個對象。在按鈕上最常發(fā)生的事情就是被

“按一下”,這個“按一下”就是按鈕對象的一個事件。在按鈕上面用鼠標按一下,在Windows

環(huán)境下的說法就叫做單擊,于是我們就說按鈕有一個Click(單擊)事件。

6)事件過程(EventProcedure)

當在對象上發(fā)生了某個事件后,我們必須想辦法來處理這個事件,而處理的步驟就是事

件過程。事件過程是針對事件而來的,而事件過程中的處理步驟在VB程序設計中就是所謂

的程序代碼。換句話說,VB程序設計者的主要工作,就是為對象編寫事件過程中的程序代

碼。

對于每?個VB所提供的對象,都已經(jīng)設定了該對象所能夠響應的事件,而每一個事件

都會有一個對應的空事件過程(也就是還沒有規(guī)定如何處理該事件的空程序)。在編寫程序

時,我們并不需要把對象所有的事件過程都填滿,只要在需要響應的事件過程中填入相應的

處理代碼就可以了。例如:對于一個窗體對象而言,既有Click(單擊)事件也有Dblclick

(雙擊)事件,但是在某個具體應用程序中,不需要考慮到Dblclick(雙擊)事件,此時我

們只需要在Click事件過程中輸入代碼,在Dblclick事件過程中無須輸入代碼。如圖1-4所

不。

E工程1-For*l(Code)

圖1-4代碼窗口

當對象上發(fā)生了某一事件,而該事件所對應的事件過程中沒有程序代碼(也就是沒有規(guī)

定處理步驟)時怎么辦?也沒有什么關系,那只不過代表程序?qū)υ撌录安挥枥頃绷T了,

也就是不予處理該事件。

7)事件驅(qū)動程序設計(EventDrivenProgrammingModel)

寫完程序后開始執(zhí)行時,程序會先等待某個事件的發(fā)生,然后再去執(zhí)行處理此事件的事

件過程。事件過程要經(jīng)過事件的觸發(fā)才會被執(zhí)行,這種動作模式就稱為事件驅(qū)動程序設計:

也就是說,由事件控制著整個程序的執(zhí)行流程。

當事件過程處理完某一事件后,程序就會進入等待狀態(tài),直到下一個事件發(fā)生為止。簡

單來說,VB程序的執(zhí)行步驟如下:

A.等待事件的發(fā)生

B.事件發(fā)生時,去執(zhí)行其對應的事件過程

C.重新開始步驟A

如此周而復始地執(zhí)行,直到程序結束為止。這就是事件驅(qū)動程序設計。

二.創(chuàng)建VB應用程序的一般步驟

使用可視化集成環(huán)境的開發(fā)工具來編寫程序,絕對不能想到哪里就寫到哪里,因為它們

跟傳統(tǒng)面向過程程序語言的結構有很到的不同。我們將用VB開發(fā)程序的一般步驟整理如

下,供參考。

編寫VB程序的基本步驟:

1.建立基礎結構:首先要想象一下程序執(zhí)行后應該是什么樣子。此時不妨用筆和紙簡

化程序完成后窗口的草圖,并注明一些操作(如按下按鈕)發(fā)生的反應、控件彼此間的關系

等等。

2.組建程序結構:在窗體上放置所需的控制元件。所謂窗體就是窗口,而控件就是指

像文本框、列表框、命令按鈕、滾動條等各種對象。

3.調(diào)整元件屬性:在屬性窗口上填寫或修改窗體及其它控件的屬性值。

4.為對象配上相應的程序代碼:為所有可能發(fā)生事件的控件編寫事件過程。例如用鼠

標在命令按鈕上單擊,對命令按鈕而言就是發(fā)生了一個Click事件。發(fā)生事件之后所做的處

理,就是以編寫一個事件過程來響應。

5.測試程序執(zhí)行結果:執(zhí)行、測試,然后再修改,直到滿意為止。

上面列出的程序設計基本步驟,不僅僅適用于VB,其它像Delphi、C++Builder等可視

化程序開發(fā)工具也都可以這樣依次進行。但是請不要忘記,這只是基本步驟而已,如果還想

要更進一步細分,其實還包括系統(tǒng)分析、使用手冊的編寫、聯(lián)機幫助的制作等等。我們特別

要強調(diào)的是,學好程序設計的最佳方法就是“練習、練習、再練習”,絕對沒有其它捷徑。

所謂“熟能生巧”,指的是當你熟悉了該語言中的各種特性和語法,并且對各種控件有了基

本印象后,設計程序時才能很快地找到所需的對象并迅速加以組合,編寫相應地事件代碼,

設計成一個完整的應用程序。

最后,我們總結一下利用VB開發(fā)應用程序的基本設計機制就是:改變對象的屬性、使

用對象的方法、為對象事件編寫事件過程。

【相關習題】

1.VB是用于開發(fā)____環(huán)境下的應用程序的工具。

A.DOSB.WindowsC.DOS和WindowsD.UNIX

2.VB是一種面向的程序設計語言.

A.過程B.用戶C.方法D.對象

3.VB采用了編程機制。

A.面向過程B.面向?qū)ο驝.事件驅(qū)動D.可視化

4.一只白色的足球被踢進球門,則白色、足球、踢、進球門是______。

A.屬性、對象、方法、事件B.屬性、對象、事件、方法

C.對象、屬性、方法、事件D.對象、屬性、事件、方法

5.能被對象所識別的動作與對象可執(zhí)行的活動分別稱為對象的o

A.方法、事件B.事件、方法C.事件、屬性D.過程、方法

6.在VB中有一行程序代碼:Textl.Text="VisualBasic”,其中的Textl、Text和"Visual

Basic”分別代表o

A.對象、值、屬性B.對象、方法、屬性

C.對象、屬性、值I).屬性、對象、值

7.以下有關對象屬性的說法中正確的是。

A.對象所有的屬性都羅列在屬性窗口列表中

B.不同對象不可能有同名屬性

C.不同對象的同名屬性取值一定相同

1).對象的某些屬性既可以在實行窗口中設置,也可以通過程序代碼設置或改變

8.以下有關對象屬性的說法中錯誤的是。

A.所有的對象都具有Name(名稱)屬性

B.只能在執(zhí)行時設置或改變的屬性為執(zhí)行時屬性

C.對象的某些屬性只能在設計時設定,不能使用代碼改變

I).Enabled屬性值設為False的控件對象在窗體上將不可見

9.在設計階段,當雙擊窗體上的某個控件時,所打開的窗口是。

A.工程資源管理器窗口B.工具箱窗口C.代碼窗口D.屬性窗口

10.剛建立一個新的標準EXE工程后,不在工具箱中出現(xiàn)的控件是o

A.單選按鈕B.圖片框C.通用對話框D.文本框

11.以下敘述中錯誤的是。

A.一個工程中只能有一個SubMain過程

B.窗體的Show方法的作用是將指定的窗體裝入內(nèi)存并顯示該窗體

C.窗體的Hide方法和Unload方法的作用完全相同

D.若工程文件中有多個窗體,可以根據(jù)需要指定一個窗體為啟動窗體

12.以下敘述中錯誤的是。

A.VisualBasic是事件驅(qū)動型可視化編程工具

B.VisualBasic應用程序不具有明顯的開始和結束語句

C.VisualBasic工具箱中的所有控件都具有寬度(Width)和高度(Height)屬性

I).VisualBasic中控件的某些屬性只能在運行時設置

13.以下敘述中錯誤的是。

A.在工程資源管理器窗口中只能包含一個工程文件及屬于該工程的其他文件

B.以.BAS為擴展名的文件是標準模塊文件

C.窗體文件包含該窗體及其控件的屬性

D.一個工程中可以含有多個標準模塊文件

14.以下不屬于VisualBasic系統(tǒng)的文件類型是。

A..FrmB..BatC..VbgD..Vbp

15.以下敘述中錯誤的是。

A.打開一個工程文件時,系統(tǒng)自動裝入與該工程有關的窗體、標準模塊等文件

B.保存VisualBasic程序時,應分別保存窗體文件及工程文件

C.VisualBasic應用程序只能以解釋方式執(zhí)行

1).事件可以由用戶引發(fā),也可以由系統(tǒng)引發(fā)

16.如果一個工程含有多個窗體及標準模塊,則以下敘述中錯誤的是。

A.如果工程中含有SubMain過程,則程序一定首先執(zhí)行該過程

B.不能把標準模塊設置為啟動模塊

C.用Hide方法只是隱藏一個窗體,不能從內(nèi)存中清除該窗體

D.任何時刻最多只有一個窗體是活動窗體

17.假定一個VisualBasic應用程序由一個窗體模塊和一個標準模塊構成。為了保存該應

用程序,以下正確的操作是。

A.只保存窗體模塊文件

B.分別保存窗體模塊、標準模塊和工程文件

C.只保存窗體模塊和標準模塊文件

D.只保存工程文件轉貼

18.為了清除窗體上的一個控件,下列正確的操作是________。

A.按回車鍵

B.按Esc鍵

C.選擇(單擊)要清除的控件,然后按Del鍵

D.選擇(單擊)要清除的控件,然后按回車鍵

【參考答案】

1.B2.D3.C4.B5.B6.C

7.D8.D9.C10.C11.C12.C

13.A14.B15.C16.A17.B18.C

第二章程序設計與算法

【學習目的和要求】

了解程序的基本組成和程序設計的一般步驟。

【學習要點】

由于計算機只能執(zhí)行算術運算和邏輯運算,所以其解決問題的方法、步驟和人們生活中

的處理不同,必須考慮其特殊性。如果利用計算機編寫程序?qū)崿F(xiàn)某個功能,不管多復雜的操

作,也必須轉化為算術和邏輯運算的組合,因此,在編寫程序之前,必須按照要求,設計出

符合計算機特性的解題步驟,這就是算法設計。

作為算法,應具有以下基本特征:

1)確定性

2)可行性

3)有窮性

4)輸入性

5)輸出性

結構化程序設計方法中,規(guī)定了算法的三種基本結構:順序結構、分支結構和循環(huán)結構,

任何復雜的問題都可以轉化為這三種結構的程序設計。當然,不管是順序結構還是分支和循

環(huán)結構的程序,都必須按一定的算法設計的步驟執(zhí)行。在計算機語言的發(fā)展過程中,對不同

問題的處理已經(jīng)形成相對固定的處理方法,這些我們會在后面的內(nèi)容中介紹。

第三章常用控件與界面設計

【學習目的和要求】

1.掌握窗體界面的設計方法,合理使用常用控件,并對窗體進行布局。

2.掌握窗體和常用控件常見的屬性、事件和方法。

【學習要點】

一.VB用戶界面設計基礎

VB程序界面的設計可以分為兩個步驟:先繪制控件,然后確定控件屬性。繪制控件是

指在工具箱里單擊所需要的控件,然后在窗體里按下鼠標,并拖曳到合適位置松開鼠標即可。

確定屬性要做的任務是先選中控件,然后按F4鍵或單擊工具欄上的屬性窗口按鈕進入屬性

(Propenes)設置窗口,再在屬性窗口中找到要設置的屬性并進行設置。

1.常見屬性的設置

1)Name屬性

對象都有名字,計算機把名字看成對象與對象之間的根本差異,因此在同一窗體里不許

出現(xiàn)重名的情況(除非這是一個控件數(shù)組)。

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

如Textl。但在有幾十個控件的復雜窗體里,如果用默認的名稱就很難區(qū)分它們。所以,專

業(yè)的程序設計人員推薦使用由三個小寫字母的前綴和一個第一個字母為大寫的描述性單詞

組成的名字。其中前三個小寫字母是各種對象名稱的簡稱,如下表3-1所示。例如可以用

cmdExit來表示一個命令按鈕,前綴cmd表示是一個命令按鈕,而Exit則表示“退出”的含

義。此種命名方法雖然不是必須的,但卻是一個優(yōu)秀程序員應當具備的素質(zhì)。

表3-1常見對象的推薦命名前綴

對象前綴例子

標簽(Label)IblIblFakeName

文本框(TextBox)txttxtWarning

命令鈕(CommandButton)cmdcmdExit

窗體(Form)frmfrmTax

框架(Frame)frafraGroupButtons

組合框(ComboBox)cbocboCrimesCommitted

列表框(ListBox)1stIstCandidates

確認框(CheckBox)chkchkCareerChioce

選項鈕(OptionButton)optimgPrettyDrawing

菜單(Menu)mnu1inBorder

圖形(Image)imgoptStationlOl

圖片框(PictureBox)picpicPrettyPicture

水平滾動條(HorizontalScrollBar)hsbhsbTemperature

垂直滾動條(VerticalScrollBar)vsbvsbMoneyRaised

目錄列表框(DirectoryListBox)dirdirTree

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

文件列表框(FileListBox)filfilDocuments

2)Caption屬性

Caption即標題,是可以在對象外觀上直接看見的文本,可以長達255字符,包括空格

和標點符號,比如一個叫cmdOk的命令鈕,它的Caption屬性就可以是“確定”。注意:

并不是所有的對象都有此屬性,比如文本框、圖片框、線條等就沒有Caption屬性。

為按鈕設置熱鍵:在設置Caption屬性時,在需要加下劃線的字母前加上符號,

例如“&File",輸出的就是“file",這樣就可以通過按ALT健和標題上那個帶下劃線的

字母來選取它了,不必為此編寫任何代碼。如下圖3T所示,我們?yōu)椤按_定”按鈕和“取消”

按鈕分別設置了熱鍵。和X,事實上,只需要設置Caption屬性分別是“確定(&0)”和“取

消(&X)”即可。

圖3T

另外,很多初學者會對Name和caption這兩個屬性分不清,下面我們對Name和

caption來做一個比較。

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

的,提示用戶該對象的作用;

②Name可以采用系統(tǒng)默認的名稱,但Caption應該根據(jù)實際情況改成意義明了的名詞,

便于操作者使用;

③所有對象都有Name,但不一定都有Caption屬性。

3)Top,Left屬性

這兩個屬性決定對象的位置。只有兩種情況需要在屬性窗口里設置這兩個屬性:第一種

是用戶沒有鼠標,第二種是程序員需要十分精確地設定這兩個值。當選中對象,單擊并拖曳

它的時候,便在修改這兩個值了。

4)Height,Width屬性

這兩個屬性決定了對象的大小,當選中控件時,它周圍出現(xiàn)八個小黑方塊,把鼠標指向

這些方塊,鼠標指針將變成一個雙向的箭頭,這時按下鼠標并拖曳它,即可改變控件的大小,

也就改變了Height,Width屬性。Top、Left和Height、Width屬性的含義見下圖3-2。

Top屬性

Height屬性

Left屬性

Width屬性

圖3-2

2.窗體的屬性

窗體對象常用的屬性如下表3-2所示。

表3-2窗體常用的屬性

屬性名稱說明

系統(tǒng)識別窗體的標識名,一個窗體名必須以一個字母開頭,

Name窗體名稱

可包含數(shù)字和下劃線,但不能包含空格和標點符號。

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

這個屬性是用戶經(jīng)常要使用的一種屬性。當用戶的應用程

序在工具條上最小化或在Windows桌面上變?yōu)橐粋€獨立應

Icon窗體圖標

用程序時,該屬性決定將采用何種圖標,窗體控制框里的

圖標也由它決定。

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

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

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

BorderStyle邊框風格窗體的BordrStyle屬性后,窗體在屏幕上沒有變化,它只

在運行時才變?yōu)樗蟮臉幼印?/p>

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

ControlBox控制按鈕用來決定是否采用控件框的屬性,僅在程序運行時才有效。

用來改變該窗體上顯示信息的字體、字型和字號,它控制

Font字體

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

該屬性決定窗體是否可見,默認情況下值為True,是可見

Visible可見性

的,值為False,運行時將看不見窗體。

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

Enabled活動性默認值為True,決定窗體能否被訪問。

Left>Top>左邊距、頂邊

決定窗體在屏幕上的位置及窗體大小。

Height^Width距、高度、寬度

二.VB窗體的創(chuàng)建

1.設置窗體屬性

1)在設計態(tài)通過屬性窗口設置,直接在屬性窗口中選擇或輸入即可。

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

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

例如:Forml.BackColor=RGB(255,0,0)'設置窗體的背景色

Forml.Caption="歡迎同學們學習VB”'設置窗體的標題屬性

2.窗體的常用方法

1)Move方法

用以移動窗體或其它控件。

語法:object.MoveLeft,Top,Width,Height

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

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

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

例3-1運行程序,單擊窗體Forml后,窗體向右移動500個特維(特維是窗體默認的

度量單位)。

分析:

程序運行后,如果單擊窗體就執(zhí)行相應的操作,所以應編寫窗體的單擊事件過程,可調(diào)

用窗體的Move方法實現(xiàn)。Move方法的第一個參數(shù)就是指定移動對象后的水平位置,要求每

單擊窗體就將窗體在原來的基礎上向右移動500個特維,窗體水平方向原來的位置是

Forml.Left,移動后的位置是Forml.Left+500,所以可編寫代碼如下:

PrivateSubFormClickO

Forml.MoveForml.Left+500

EndSub

注意:如果在調(diào)用對象的方法和屬性時省略對象名,系統(tǒng)默認為是當前窗體對象,所以

上述代碼還可以寫成如下形式:

PrivateSubFormClickO

MoveLeft+500

EndSub

考慮一下:如果不用Move方法,是否可以實現(xiàn)上述功能?以下程序可以實現(xiàn)嗎?

PrivateSubFormClickO

Forml.Left=Forml.Left+500

EndSub

例3-2運行程序,單擊窗體Forml后,窗體向下移動500個特維(特維是窗體默認的

度量單位)。

分析:

本例與例3T唯一不同就是窗體移動的方向不同,垂直方向移動的位置由Top屬性決定,

如果編寫如下程序,考慮一下,是否正確?

PrivateSubForm_Click()

Forml.MoveForml.Top+500

EndSub

大家可以上機運行一下,結果會發(fā)現(xiàn)單擊窗體后,窗體仍然是水平移動,而且只會移動

一次,以后就不會再移動,為什么?

調(diào)用Move方法時要注意,它帶4個參數(shù),每個參數(shù)的作用是不同的,第一參數(shù)決定其

移動后的水平位置,第二個參數(shù)決定其移動后的垂直位置,要求水平位置不變,垂直方向向

下移動500特維,所以正確的程序是:

PrivateSubForm_Click()

Forml.MoveForml.Left,Forml.Top+500

EndSub

參考上一個例子,考慮一下,如果不用Move方法,是否可以實現(xiàn)上述功能?考慮用窗

體的Left和Top屬性是否可以完成?

例3-3運行程序,單擊窗體后,將窗體上的命令按鈕C1向下移動500個特維,同時將

其高度和寬度變?yōu)樵瓉淼膬杀丁?/p>

分析:

Move方法是很多對象都可以執(zhí)行的公共方法,除了窗體,標簽、文本框、命令按鈕等

都可以執(zhí)行Move方法。因為Move方法的第三個參數(shù)和第四個參數(shù)分別用來指定對象的寬度

和高度,即對象在移動位置的同時還可以改變大小。原來命令按鈕C1的寬度是Cl.Width,

高度是CLHeight,所以移動后寬度應為Cl.Width*2,高度為CLHeight*2,所以可以編寫

程序如下:

PrivateSubForm_Click()

Cl.MoveCl.Left,Cl.Top+500,Cl.Width*2,Cl.Height*2

EndSub

2)Print方法

Print方法主要用來在對象上輸出信息,除了窗體對象外,還可以在圖片框、立即窗口

等對象中輸出信息。在窗體的所有方法中,Print方法可能是用得最多的。

語法:object.Print[表達式列表]

例3-4以下語句運行后在窗體上輸出內(nèi)容為行,分別為。

Print1,2,3

Print4;5;6

分析:

這里有幾個注意點:

①Print方法前若缺省對象名,系統(tǒng)默認為在窗體上輸出,所以這兩條語句都是在窗

體上輸出內(nèi)容。

②Print方法如果同時輸出多個數(shù)據(jù)項,每個數(shù)據(jù)項之間可用逗號或分號分隔,注意

逗號分隔和分號分隔是有區(qū)別的,逗號分隔格式稱為分區(qū)格式,系統(tǒng)將顯示區(qū)域每14列劃

為一個分區(qū),第一個輸出項會從第一個分區(qū)輸出,后面的輸出項將依次從下一個分區(qū)開始輸

出;分號分隔格式稱為緊湊格式,數(shù)據(jù)項之間是緊跟著輸出。

很顯然,這兩條語句中第一個是分區(qū)輸出格式,第二個是緊湊輸出格式,一共輸出兩行,

顯示結果如下圖3-3所示:

圖3-3

可以看出,第一行是分區(qū)輸出,每個數(shù)據(jù)項之間的間隔較大,每個分區(qū)間隔14歹人第

二行雖然是緊湊輸出,但數(shù)據(jù)也沒有連在一起顯示,這是因為VB在輸出數(shù)值數(shù)據(jù)時,系統(tǒng)

會自動在每個輸出項后輸出一個空格作為分隔符,如果是正數(shù),還會在每個整數(shù)前輸出一個

空格作為符號位,所以每個數(shù)據(jù)項之間還有2個空格分隔。

例3-5以下語句運行后在窗體上輸出內(nèi)容為行,分別為。

Print1,2,3;

Print4;5;6

分析:

這兩條語句與例2-4唯一的區(qū)別就在于第一條語句后有一個分號分隔符。如果Print

輸出項后沒有任何分隔符,那么語句執(zhí)行完系統(tǒng)會自動換行,如果下面還有輸出語句,則該

語句從下一行開始顯示;如果Print輸出項后有分隔符,不管是逗號還是分號,都說明該語

句執(zhí)行完后不會換行,下一個輸出語句還會從這一行的下一個位置顯示(下一個顯示位置取

決了最后分隔的是逗號還是分號)。所以,這兩條語句在窗體上只顯示一行,顯示結果如下

圖3-4所示:

圖3-4

例3-6以下語句運行后在窗體上輸出內(nèi)容為_____行,分別為o

Print1;2;3

Print

Printa;b;c

分析:

由于這三條Print語句末尾后都沒有分隔符號,所以每輸完一行就會自動換行,一共輸

出三行。其中第一行按緊湊格式輸出1、2、3,由于是數(shù)值數(shù)據(jù),每個數(shù)據(jù)項之間會有空格

分隔;第二行Print語句后沒有任何輸出項,表示輸出一個空行;第三行按緊湊格式輸出3

個字符,由于系統(tǒng)在輸出字符數(shù)據(jù)時不會輸出前置空格和尾隨空格,所以這3個字符數(shù)據(jù)輸

出是連在一-起的。顯示結果如下圖3-5所示:

圖3-5

例3-7以下語句運行后在窗體上輸出內(nèi)容為行,分別為。

Print1;2;3;

Print

Printa;b;c

分析:

仍然是3條Print語句,和例2-6唯一的區(qū)別是第一條Print語句后有分號分隔符,因

為有分隔符號,所以在輸完第一行1、2、3后不會換行,第二句Print語句會直接在第一行

末尾輸出空行,輸完后換行,所以運行后會在窗體上輸出兩行內(nèi)容,第二條print語句的作

用相當于取消第一條語句后的分隔符號,起換行的作用,顯示結果如下圖3-6所示:

圖3-6

例3-8編寫程序,要求運行時單擊窗體后,在窗體上輸出如圖2-7的內(nèi)容。

圖3-7

分析:

程序要求運行時,當窗體的單擊事件發(fā)生時實現(xiàn)上述功能,所以應將代碼放在

FormClick事件過程中。

Print方法輸出信息時可以利用Tab函數(shù)或Spc函數(shù)實現(xiàn)定位輸出。在輸出項之前用Tab

函數(shù)定位,可將內(nèi)容在指定列輸出,而Spc函數(shù)主要用來輸出空格。如執(zhí)行語句

PrintTab(10);12;spc(5);15

將在當前行的第10列輸出12,再輸出5個空格,然后輸出15。

注意:用Tab函數(shù)、Spc函數(shù)和輸出項配合時,一般用分號分隔。

所以以上圖形可以編寫程序如下:

PrivateSubForm_click()

PrintTab(5);

PrintTab(4);”***"

PrintTab(3);”*****"

PrintTab(2);”*******"

EndSub

若用Spc函數(shù),則程序可以寫成:

PrivateSubForm_click()

PrintSpc(4);"*"

PrintSpc⑶;”***“

PrintSpc(2);”*****"

PrintSpc(l);”*******"

EndSub

3)Show-,Hide方法

這兩個方法分別用來顯示和隱藏Form對象。

說明:

如果調(diào)用Show方法時指定的窗體沒有裝載,VisualBasic將自動裝載該窗體。Hide

方法可以暫時將窗體隱藏,用戶將無法訪問隱藏窗體上的控件,但并不會將窗體從內(nèi)存中卸

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

可以利用這兩個方法在不同的窗體之間進行切換。

例3-9編寫程序,要求運行時單擊窗體Forml后,將Forml隱藏,顯示窗體Form2。

分析:

程序中要用到兩個窗體,除了創(chuàng)建工程時默認的窗體外,可以執(zhí)行“工程”一“添加窗

體”菜單項實現(xiàn)窗體Form2的添加。雖然這時工程中有兩個窗體,但工程執(zhí)行時只有一個啟

動窗體,默認為第一個創(chuàng)建的窗體。要實現(xiàn)上述功能,可以編寫程序如下:

PrivateSubForm_click()

Forml.Hide

Form2.Show

EndSub

4)Cis方法

清除運行時Form或PictureBox所生成的圖形和文本。

語法:object.Cis

說明:

Cis將清除圖形和打印語句在運行時所產(chǎn)生的文本和圖形,比如可以執(zhí)行Cis方法將窗

體上用Print方法輸出的內(nèi)容。

注意:設計時在Form中使用Picture屬性設置的背景位圖和放置的控件不受Cis影

響。調(diào)用Cis之后,object的CurrentX和CurrentY屬性復位為0?

3.窗體的常用事件

1)Load事件

這個事件發(fā)生在窗體被裝入內(nèi)存時,且發(fā)生在窗體出現(xiàn)在屏幕之前。窗體出現(xiàn)之前,VB

會看一看Load事件里有沒有代碼,如果有,那么它先執(zhí)行這些代碼,再讓窗體出現(xiàn)在屏幕

上。

2)Click事件,Dblclick事件

這兩個事件在單擊或雙擊窗體時發(fā)生。不過單擊窗體里的控件時,窗體的Click事件并

不會發(fā)生,VB會去看控件的Click事件里有沒有代碼。

3)Activate(活動事件)與Deactivate(非活動事件)

顯示多個窗體時,可以從一個窗體切換到另一個窗體。每次激活一個窗體時,發(fā)生

Activate事件,而前一個窗體發(fā)生Deactivate事件。

4)Resize事件

在窗體被改變大小時會觸發(fā)此事件。

4.窗體的控制

1)裝入或卸出窗體

要裝入或卸出窗體,用Load或Unload語句。

裝入窗體:LoadFormName

卸載窗體:UnLoadFormName

FormName變量是要裝入或卸出的窗體名。Load語句只是把窗體裝入內(nèi)存,并不顯示出

來,要顯示窗體可以使用窗體的Show方法。

注意:卸載當前窗體還可以執(zhí)行語句UnLoadMe,Me在VB中表示當前窗體對象的關鍵

字。

2)End語句

End語句的功能是終止應用程序的執(zhí)行,并從內(nèi)存卸載所有窗體。

三.常用控件

1.常用的標準控件的屬性、方法和事件

公共屬性:Name^Caption>Enabled、Fontsize^Height、Width、Index>Left、Top>

TabStop

公共方法:Move>Refresh、Setfocus(設置焦點)

公共事件:Click>DblClick>LostFocus(失去焦點)

2OTfextBox文本框

文本框用于接受用戶在文本框內(nèi)輸入內(nèi)容或顯示內(nèi)容,具體屬性和事件見下表3-5。

表3-5文本框常用屬性和事件

屬性、方法、

說明

事件

Text屬性即用戶從文本框輸入的內(nèi)容

PasswordChar

設置口令時用的掩碼,如:用*代替實際輸入的內(nèi)容

屬性

MaxLength屬

最大長度,缺省值是0,即可以輸入任意個字符

MultiLine屬為True時可以多行文本,為False時只能輸入一行

性文本

Alignment屬文本在框中的對齊方式:0=左對齊,1=右對齊,2=

性居中

Change事件當框中的文本內(nèi)容發(fā)生變化時觸發(fā)該事件

LostFocus事

當光標離開文本框時觸發(fā)該事件

控件的屬性通常會在上機考試中要求設置,這時候就要求根據(jù)題目的要求,知道應該對

哪個屬性進行設置。下面我們來看?個例子。

請根據(jù)以下各小題的要求設計VisualBasic應用程序(包括界面和代碼)。

(1)在標題為“文本框”、名稱為Forml的窗體上畫一個名稱為Textl的文本

框,無初始內(nèi)容,其dj、寬分別為2000、1800,可顯不多行,有小平談動

條,并通過屬性窗口把文本框的字體樣式設置為“斜體”(如圖詼示5。

卷信時必須存放在考生文件夾下,工程文件名為sjtLvbp,窗體文件名

為sjtl.fririo

根據(jù)題目的要求,我們應當進行以下步驟的操作:

A)設置窗體的Caption屬性為“文本框”

B)在窗體上放一個TextBox控件,設置其Text屬性為空,設置其Height屬性為2000,

Width屬性為1800,設置其MultiLine為True,設置ScrollBars為1

C)設置Font屬性中字型為斜體

例3-10編寫程序,要求一運行程序,在文本框Textl中輸入的每一個字符都顯示

為“*";單擊命令按鈕Commandl,則文本框中顯示真正的內(nèi)容;單擊命令按鈕Command2,

則文本框中顯示的每一個字符都顯示成“?北程序運行界面分別見圖3-8、3-9和370。

圖3-8

圖3-9

言“Foral

圖3-10

分析:

要求一運行程序就將在文木框Textl中輸入的每一個字符都顯示為"*",應該在屬性

窗口中設置其PasswordChar屬性為“*"。兩個命令按鈕的事件過程如下:

PrivateSubCommand1Click()

Textl.PasswordChar=""'將PasswordChar設置為空串,將取消文本框的密碼屬

EndSub

PrivateSubCommand2_Click()

Textl.PasswordChar="?"

EndSub

2)Label標簽

標簽用于在窗體上添加文字說明,具體屬性和事件見下表3-6?

表3-6標簽常用屬性和事件

屬性、方法、事件說明

Alignment屬性指明Caption文本的對齊方式:0二左對齊,1二右對齊,2二居中

自動調(diào)節(jié)大小,為True時可根據(jù)文本大小自動調(diào)整標簽大小,

AutoSize屬性

為False時標簽大小不能改變,過長的文本被截掉

為True時可根據(jù)標簽大小自動換行(前提條件是AutoSize為

Wordwrap屬性

True)

下面我們來看一個例子。

請根據(jù)以下各小題的要求設計VisualBasic應用程序(包括界面和代碼)。

Cl)在各鰲咨駕蘆軸翳5Z'第堂”的窗體上畫一個名稱為Labell的標簽,

樂簽的

2)標簽可根據(jù)顯示內(nèi)容宣動調(diào)整其大小匕

3)標簽帶有援框,目棕譬內(nèi)容顯示為三號字。

運行后的窗彳本如圖所不。

y4~?

薦蠢時必須存放在考生文件夾下,工程文件名為sjtl.vbp,窗體文件

名為sjtl.fririo

標簽

I計算機等級考試

我們應該完成以下兒個步驟。

A)設置窗體的Caption屬性為"標簽"

B)在窗體上放一個Label控件,設置其Caption屬性為“計算機等級考試”

C)設置Label控件的AutoSize屬性為True

D)設置其BoderStyle屬性為1,設置Font屬性中的大小為三號字

3)ListBox列表框

列表框主要用于列出可供用戶選擇的項目列表,具體屬性和事件見下表3-7。

表3-7列表框常用屬性和事件

屬性、方法、事件說明

用于保存列表內(nèi)容,訪問形式:[對象名].List(列表項序號),

List屬性

列表項的序號由上到下依次為0、1、2、3……。

ListCount屬性列表項數(shù)目

列表項索引,其值為最后選中的列表項序號,第一個為0,如果

Listindex屬性

未選中任何表項,其值為-1。

列表項正文,其值為最后選中的列表項的文本,它與List

Text屬性

(Listl.Listindex)相同。

Columns屬性列表框顯示形式,取0時為一列顯示所有行,其他值為多列。

排序?qū)傩?為True時,列表項按ASCII碼排序,為False時,

Sort屬性

則不排序。

添加列表項,使用格式:

Addltem方法[對象名.]Addltem〈列表項文本>[,插入位置序號]

若不指定位置,則插入到列表末尾。

Clear方法清除列表所有項目

刪除指定列表項內(nèi)容,格式:[對象名.]Removeitem刪除項序

Removeitem方法

下面我們來看一個例子。

在名稱為Forml的

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論