《多媒體技術(shù)與應(yīng)用 》課件第7章_第1頁
《多媒體技術(shù)與應(yīng)用 》課件第7章_第2頁
《多媒體技術(shù)與應(yīng)用 》課件第7章_第3頁
《多媒體技術(shù)與應(yīng)用 》課件第7章_第4頁
《多媒體技術(shù)與應(yīng)用 》課件第7章_第5頁
已閱讀5頁,還剩183頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章多媒體程序設(shè)計

7.1VisualBasic的集成開發(fā)環(huán)境7.2VisualBasic的程序設(shè)計步驟7.3VisualBasic語言基礎(chǔ)7.4VisualBasic常用控件與窗體7.5多媒體程序設(shè)計7.6設(shè)計實例7.1VisualBasic的集成開發(fā)環(huán)境

在Windows中啟動VisualBasic,可按照以下步驟執(zhí)行:

(1)單擊Windows任務(wù)條上的“開始”按鈕。

(2)選擇“程序”,選取“MicrosoftVisualBasic6.0中文版”。

(3)單擊“MicrosoftVisualBasic6.0中文版”。圖7.1VisualBasic6.0的啟動界面圖7.2VisualBasic6.0的集成開發(fā)環(huán)境窗體布局7.1.1主窗口圖7.3主窗口1.標(biāo)題欄VB有三種工作模式:(1)設(shè)計模式。它可進行用戶界面的設(shè)計和代碼的編制,以完成應(yīng)用程序的開發(fā)。(2)運行模式。它可運行應(yīng)用程序,這時不可編輯代碼,也不可編輯界面。(3)中斷模式。它使應(yīng)用程序運行暫時中斷,這時可以編輯代碼,但不可編輯界面。

2.菜單欄(1)文件(File)。(2)編輯(Edit)。(3)視圖(View)。(4)工程(Project)。(5)調(diào)試(Debug)。(6)運行(Run)。(7)工具(Tools)。(8)外接程序(Add-Ins)。(9)窗口(Windows)。(10)幫助(Help)。圖7.4標(biāo)準(zhǔn)工具欄

3.工具欄利用工具欄可以訪問常用的菜單命令。除了圖7-4所示的標(biāo)準(zhǔn)工具欄外,VisualBasic6.0還提供了編輯、窗體編輯器、調(diào)試等專用工具欄。要顯示或隱藏工具欄,可以選擇“視圖”菜單的“工具欄”命令或?qū)⑹髽?biāo)放在標(biāo)準(zhǔn)工具欄處單擊右鍵選取所需的工具欄。7.1.2窗體窗口

窗體窗口具有標(biāo)準(zhǔn)窗口的一切功能,可被移動、改變大小及縮成圖標(biāo)。窗體是VB應(yīng)用程序的主要部分,用戶通過與窗體上的控制部件交互來得到結(jié)果。每個窗體窗口必須有一個唯一的窗體名字,建立窗體時缺省為Form1,Form2…。在設(shè)計狀態(tài)下窗體是可見的,窗體的網(wǎng)格點間距可以通過“工具”菜單的“選項”命令,在“通用”標(biāo)簽的“窗體設(shè)置網(wǎng)格”中輸入“寬度”和“高度”來改變。運行時可通過屬性控制窗體的可見性(窗體的網(wǎng)格始終不顯示)。一個應(yīng)用程序至少有一個窗體窗口,用戶可在應(yīng)用程序中擁有多個窗體窗口。除了一般窗體外,還有一種MDI(MultipleDocumentInterface)多文檔窗體,它可以包含子窗體,每個子窗體都是獨立的。7.1.3屬性窗口屬性(Properties)窗口見圖7-5,所有窗體或控件的屬性如顏色、字體、大小等都可以通過屬性窗口來修改。屬性窗口由以下幾部分組成。

(1)對象列表框:單擊其右邊的箭頭可拉出所選窗體包含的所有對象的列表。

(2)屬性排列方式:有“按字母序”和“按分類序”兩個按鈕,圖7-5中所示為“按分類序”排列的屬性列表。

(3)屬性列表框:列出所選對象在設(shè)計模式下的屬性及缺省值,對于不同對象,它所列出的屬性也是不同的。屬性列表由中間一條線將其分為兩部分。左邊列出的是各屬性,右邊列出的則是相應(yīng)的屬性值。用戶可以選定某一屬性,然后對該屬性值進行設(shè)置或修改。

(4)屬性含義說明:當(dāng)在屬性列表框選取某屬性時,在該區(qū)顯示所選屬性的含義。圖7.5屬性窗口7.1.4工程資源管理器窗口工程資源管理器窗口見圖7-6。?它保存了一個應(yīng)用程序的所有屬性以及組成這個應(yīng)用程序的所有文件。工程文件的后綴為VisualBasicP,工程文件名顯示在工程文件窗口的標(biāo)題框內(nèi)。圖7.6工程資源管理器工程資源管理器窗口下面有三個按鈕,分別說明如下。

(1)“查看代碼”按鈕:切換到代碼窗口,顯示和編輯代碼。

(2)“查看對象”按鈕:切換到模塊的對象窗口。

(3)“切換文件夾”按鈕:工程中的文件按類型分或不分層次顯示的切換。工程資源管理器下面的列表窗口,以層次列表形式列出組成這個工程的所有文件。它可以包含以下三類主要文件:

(1)窗體文件(?.FRM文件):存儲窗體上使用的所有控件對象、對象的屬性、對象相應(yīng)的事件過程及程序代碼。一個應(yīng)用程序至少包含一個窗體文件。

(2)標(biāo)準(zhǔn)模塊文件(?.BAS文件):所有模塊文件是由用戶自定義的通用過程。通用過程是指可以被應(yīng)用程序各處調(diào)用的過程。

(3)類模塊文件(?.CLS文件):可以用類模塊來建立用戶自己的對象。類模塊包含用戶對象的屬性及方法,但不包含事件代碼。7.1.5代碼窗口

代碼(Code)窗口是專門用來進行程序設(shè)計的窗口,可以在其中顯示和編輯程序代碼,見圖7-7。用戶可以打開多個代碼窗口,查看不同窗體、標(biāo)準(zhǔn)模塊中的代碼,并可在各個窗口間復(fù)制代碼。圖7-7代碼窗口打開代碼窗口有以下三種方法:

(1)從工程窗口中選擇一個窗體或標(biāo)準(zhǔn)模塊,并單擊“查看代碼”按鈕。

(2)從窗體窗口中打開代碼窗口,可用鼠標(biāo)雙擊一個控件或窗體本身。

(3)從“視圖”菜單中選擇“代碼窗口”命令。代碼窗口主要包括:

(1)對象列表框:下拉式列表框,存儲并顯示當(dāng)前被選中窗體及所有控件名。其中“(通用)”表示與特定對象無關(guān)的通用代碼,一般在此聲明非局部變量或由用戶編寫自定義函數(shù)和過程。

(2)過程列表框:下拉式列表框,存儲并顯示各種事件過程的名稱(還可以顯示用戶自定義過程名)。在對象列表框選擇對象名,在過程列表框中選擇事件過程名,即可構(gòu)成選中對象的事件過程模板,用戶可在該模板內(nèi)輸入代碼。其中,“(聲明)”表示聲明非局部變量。

(3)代碼框:用于輸入代碼。7.1.6窗體布局窗口

窗體布局(FormLayout)窗口用于指定程序運行時的初始位置,主要為使所開發(fā)的應(yīng)用程序能在各個不同分辨率的屏幕上正常運行,在多窗體應(yīng)用中較有用,此窗口在屏幕的右下角,如圖7-8所示。圖7-8窗體布局窗口7.1.7對象瀏覽器窗口

對象瀏覽器(ObjectBrowser)窗口見圖7-9。該窗口可查看在工程中定義的模塊或過程,也可以查看對象庫、類型庫、類、方法、屬性事件及過程中使用的常數(shù)。圖7-9對象瀏覽器窗口7.1.8工具箱窗口

工具箱(ToolBox)窗口見圖7-10。剛安裝VisualBasic6.0時,它由21個被繪制成按鈕形式的圖標(biāo)構(gòu)成,顯示了各種控件的制作工具。利用這些工具,用戶可以在窗體上設(shè)計各種控件。這20個控件稱為標(biāo)準(zhǔn)控件(注意:指針不是控件,僅用于移動窗體和控件以及調(diào)整它們的大小),用戶也可通過“工程”菜單的“部件”命令將系統(tǒng)提供的其他標(biāo)準(zhǔn)控件裝入工具箱。

在設(shè)計狀態(tài)下,工具箱總是出現(xiàn)的。若不需要顯示工具箱,可以關(guān)閉工具箱窗口,需要顯示則選擇“視圖”菜單的“工具箱”命令即可。在運行狀態(tài)下,工具箱自動隱去。圖7-10工具箱窗口

7.2VisualBasic的程序設(shè)計步驟

7.2.1創(chuàng)建應(yīng)用程序界面

窗體是創(chuàng)建應(yīng)用程序的基礎(chǔ)。通過使用窗體可將窗口和對話框添加到應(yīng)用程序中。創(chuàng)建VisualBasic應(yīng)用程序的第一步是創(chuàng)建窗體,這些窗體將是應(yīng)用程序界面的基礎(chǔ)。然后在創(chuàng)建的窗體上繪制構(gòu)成界面的對象。對于本節(jié)的應(yīng)用程序,可使用工具箱中的兩個控件,見表7-1。

表7-1“Howareyou!”中所用控件用工具箱繪制控件,單擊要繪制該控件的工具——此時是“文本框”,步驟如下:

(1)將指針移到窗體上,該指針變成十字線。

(2)將十字線放在控件的左上角。

(3)拖動十字線畫出適合控件大小的方框(拖動的意思是按住鼠標(biāo)左鍵并移動)。

(4)釋放鼠標(biāo)按鈕。

(5)雙擊工具箱上的“命令按鈕”,在窗體中央出現(xiàn)“Commandl”命令按鈕,調(diào)整它的尺寸和位置。在窗體上添加控件的一個簡單方法是雙擊工具箱中的控件按鈕,這樣會在窗體中央創(chuàng)建一個尺寸為缺省值的控件,然后再改變該控件的位置和大小。

出現(xiàn)在控件四周的小矩形框稱作尺寸句柄,可用這些尺寸句柄調(diào)節(jié)控件尺寸;也可用鼠標(biāo)、鍵盤和菜單命令移動控件,鎖定和解鎖控件位置以及調(diào)節(jié)控件位置。調(diào)整控件的尺寸,請按照以下步驟執(zhí)行:

(1)用鼠標(biāo)單擊要調(diào)整尺寸的控件,選定的控件上出現(xiàn)尺寸句柄。

(2)將鼠標(biāo)指針定位到尺寸句柄上,拖動該尺寸句柄直到控件達到所希望的大小為止。角上的尺寸句柄可以調(diào)整控件水平和垂直方向的大小,而邊上的尺寸句柄用于調(diào)整控件某一方向的大小。

(3)釋放鼠標(biāo)按鈕。也可用Shift加箭頭鍵來調(diào)整選定控件的尺寸。

要移動控件,可用鼠標(biāo)把窗體上的控件拖動到一新位置,或用“屬性”窗口改變Top和Left屬性。選定控件后,可用Ctrl加箭頭鍵每次移動控件一個網(wǎng)格單元。

要鎖定所有控件位置,從“格式”菜單中選取“鎖定控件”選項,或在“窗體編輯器”工具欄上單擊“鎖定控件切換”按鈕。這個操作將把窗體上所有的控件鎖定在當(dāng)前位置,以防止已處于理想位置的控件被移動。本操作只鎖住選定窗體上的全部控件,不影響其他窗體上的控件。這是一個切換命令,因此也可用來解鎖控件位置。要調(diào)節(jié)鎖定控件的位置,可以按住Ctrl鍵,再用合適的箭頭鍵微調(diào)已獲焦點的控件的位置,也可在“屬性”窗口中改變控件的Top和Left屬性。

現(xiàn)在已生成了“Howareyou!”應(yīng)用程序的界面,如圖7-11所示。圖7-11“Howareyou!”應(yīng)用程序的界面7.2.2設(shè)置屬性

下一步是給創(chuàng)建的對象設(shè)置屬性。屬性窗口(見圖7-12)給出了設(shè)置所有窗體對象屬性的簡便方法。在“視圖”菜單中選擇“屬性窗口”命令、單擊工具欄上的“屬性窗口”按鈕或使用控件的上下文菜單,都可以打開屬性窗口。

屬性窗口包含如下元素:

(1)對象框——顯示可設(shè)置屬性的對象的名字。單擊對象框右邊向下的箭頭,顯示當(dāng)前窗體的對象列表。

(2)排序——從按字母順序排列的屬性列表中進行選取,或從按邏輯(諸如外觀、字體或位置等)分類頁的層次結(jié)構(gòu)視圖中進行選取。

(3)屬性列表——左列顯示所選對象的全部屬性,右列可以編輯和查看設(shè)置值。

要在屬性窗口中設(shè)置屬性,可按照以下步驟執(zhí)行:

(1)從“視圖”菜單中選取“屬性”,或在工具欄中單擊“屬性”按鈕。屬性窗口顯示所選窗體或控件的屬性設(shè)置值。

(2)從屬性列表中選定屬性名。

(3)在屬性列邊框的右列中輸入或選定新的屬性設(shè)置值。列舉的屬性有預(yù)定義的設(shè)置值清單。單擊屬性列表框右邊向下的箭頭,可以顯示這個清單;或者雙擊列表項,可以循環(huán)顯示這個清單。圖7-12屬性窗口表7-2“Howareyou!”屬性取值表7.2.3編寫代碼

代碼窗口是編寫應(yīng)用程序的VisualBasic代碼的地方。代碼由語句、常數(shù)和聲明部分組成。使用代碼窗口可以快速查看和編輯應(yīng)用程序代碼的任務(wù)部分。要打開代碼窗口,可以雙擊要編寫代碼的窗體或控件?;蛟凇肮こ坦芾砥鳌贝翱谥羞x定窗體或模塊的名稱,然后選取“查看代碼”按鈕。圖7-13顯示了在雙擊命令按鈕控件后出現(xiàn)的代碼窗口以及該命令按鈕的事件。圖7-13應(yīng)用程序的代碼窗口在同一個代碼窗口中可以顯示全部過程,也可以只顯示一個過程。要在同一個代碼窗口中顯示全部過程,可以按照以下步驟執(zhí)行:

(1)在“工具”菜單下選定“選項”對話框。

(2)在“選項”對話框的“編輯器”選項卡中,選取“缺省為全模式查看”左邊的復(fù)選框(“過程分隔符”左邊的復(fù)選框可在各過程間添加或去掉分隔線),或在代碼窗口的左下角單擊“全模塊查看”按鈕。不選擇這些選項則可以讓代碼窗口每次只顯示一個過程。代碼窗口包含如下元素:

●對象列表框——顯示所選對象的名稱。單擊列表框右邊的箭頭,顯示和該窗體相關(guān)的所有對象的清單。

●過程列表框——列出對象的過程或事件。該框顯示選定過程的名稱,在目前情況下列出的是Click事件。選取該框右邊的箭頭可以顯示這個對象的全部事件。

VisualBasic應(yīng)用程序的代碼被分成稱為過程的小的代碼塊。事件過程,正如此處正要創(chuàng)建的一樣,包含了事件發(fā)生(例如單擊按鈕)時要執(zhí)行的代碼??丶氖录^程由控件的實際名稱(Name屬性中所指定的)、下劃線(?_?)和事件名組合而成。例如,在單擊一個名為Command1的命令按鈕時調(diào)用的事件過程可稱為Command1_Click事件過程。要創(chuàng)建事件過程,可以按照以下步驟執(zhí)行:

(1)在“對象”列表框中,選定活動窗體中的一個對象名(活動窗體是指當(dāng)前有焦點的窗體)。在本例中,選定命令按鈕Command1。

(2)在“過程”列表框中,選擇指定對象的事件名。此時Click過程已經(jīng)被選定,因為它是命令按鈕的缺省過程。注意,這時事件過程的模塊已經(jīng)顯示在“代碼”窗口中。

(3)在Sub和EndSub語句之間輸入下面的代碼:

Text1.Text="Howareyou!"

這個事件過程如下列程序所示:

PrivateSubCommand1_Click()

Text1.Text="Howareyou!"

EndSub代碼只簡單改變了控件Text1的Text屬性,讀入“Howareyou!”。這個例子的語法采用perty(對象.屬性)的格式,其中Text1是對象,Text是屬性。響應(yīng)應(yīng)用程序運行中發(fā)生的事件時,可以用這種語法來改變?nèi)魏未绑w或控件的屬性設(shè)置值。

現(xiàn)在可以運行此應(yīng)用程序了,從“運行”菜單中選擇“啟動”選項,或者單擊工具欄中的“啟動”按鈕,或者按F5鍵都可以啟動“Howareyou!”應(yīng)用程序。單擊剛才在窗體上創(chuàng)建的“OK”命令按鈕,文本框中就會顯示“Howareyou!”。

7.3VisualBasic語言基礎(chǔ)

1.數(shù)據(jù)類型

VisualBasic支持多種數(shù)據(jù)類型,包括整型、長整型、單精度浮點型、雙精度浮點型、貨幣型、字符串和變體型。表7-3列出了VisualBasic支持的基本數(shù)據(jù)類型的描述符、存儲大小和范圍。表7-3VisualBasic支持的基本數(shù)據(jù)類型

2.程序流程控制

1)條件判斷

VisualBasic過程可以用“If…then…”語句來測試條件,并根據(jù)測試結(jié)果執(zhí)行不同的操作。它有兩種語法,分別用于單個條件測試和多個條件測試。

語法規(guī)則1:

IfconditionThenthenpart[Elseelsepart]

語法規(guī)則2:

Ifcondition1Then

[statementblock-1]

[ElseIfcondition2Then

[statementblock-2]]

[Else

[statementblock-n]]

EndIf

2)分支結(jié)構(gòu)

根據(jù)同一個表達式的不同值來產(chǎn)生多個動作,就要用到分支結(jié)構(gòu)。VisualBasic中的分支結(jié)構(gòu)采用的是SelectCase語句。

語法規(guī)則:

SelectCasetestexpression

[Caseexpressionlist1

[statementblock-1]]

[Caseexpressionlist2

[statementblock-2]]

[CaseElse

[statementblock-n]]

EndSelect每個testexpression都是一個或多個值的列表。如果在一個列表中有多個值,這些值就用逗號隔開;如果多個Case語句同測試表達式相符,那么第一個相符的Case語句塊被執(zhí)行;如果列表中沒有符合條件的語句,VisualBasic執(zhí)行CaseElse語句。

應(yīng)注意,SelectCase結(jié)構(gòu)只在結(jié)構(gòu)頭部計算一次表達式,而且If?…?Then?…?Else結(jié)構(gòu)可以對每一個EndIf語句計算不同的表達式。因此,僅當(dāng)每個EndIf語句計算同一表達式時,才可以用SelectCase結(jié)構(gòu)代替。

3)循環(huán)結(jié)構(gòu)

循環(huán)結(jié)構(gòu)分為不確定循環(huán)和確定循環(huán)兩種類型,不確定循環(huán)語句為“Do?…?Loop”,確定循環(huán)語句為“For?…?Next”。不確定循環(huán)是在當(dāng)(While)某個條件為真時執(zhí)行某一段代碼,或者執(zhí)行某一段代碼直到某個條件為真。Do?…?Loop有兩種語法。語法規(guī)則1:

Do[{While|Until}condition]

[statementblock]

[ExitDo]

[statementblock]

Loop

語法規(guī)則2:

Do

[statementblock]

[ExitDo]

[statementblock]

Loop[{While|Until}condition]

7.4VisualBasic常用控件與窗體

7.4.1控件的基本概念

1.控件的分類

VisualBasic6.0的控件有三種廣義分類:

(1)內(nèi)部控件。內(nèi)部控件如CommandButton和TextBox控件等,它們都在VisualBasic的EXE文件中。內(nèi)部控件總是出現(xiàn)在工具箱中,不像AetiveX控件和可插入對象那樣可以添加到工具箱中或從工具箱中刪除。

(2)?ActiveX控件。它是擴展名為?.OCX的獨立文件,其中包括各種VisualBasic版本提供的控件(DBGrid、DBCombo、DBList控件等)和僅在專業(yè)版和企業(yè)版中提供的控件(如Listview、Toolbar、Animation和標(biāo)記對話控件),此外還包括許多第三方提供的ActiveX控件。

(3)可插入的對象。如一個MicrosoftWord文檔對象,因為這些對象能添加到工具箱中,所以可把它們當(dāng)作控件使用。其中一些對象還支持OLE自動化,使用這種控件就可以在VisualBasic應(yīng)用程序中編程控制另一個應(yīng)用程序的對象。表7-4VisualBasic6.0的內(nèi)部控件

表7-5標(biāo)準(zhǔn)ActiveX控件

2.焦點的概念

焦點有接收用戶鼠標(biāo)或鍵盤輸入的功能。當(dāng)對象具有焦點時,可接收用戶的輸入。在Windows操作系統(tǒng)中,任一時刻可運行幾個應(yīng)用程序,但只有具有焦點的應(yīng)用程序才有活動標(biāo)題欄,才能接受用戶輸入。在有幾個TextBox的VisualBasic窗體中,只有具有焦點的TextBox才顯示由鍵盤輸入的文本。

當(dāng)對象得到或失去焦點時,會產(chǎn)生GotFocus或LostFocus事件。對象得到焦點時發(fā)生GotFocus事件;對象失去焦點時發(fā)生LostFocus事件。窗體和大多數(shù)控件支持這兩個事件。使用下列方法之一可以將焦點賦給對象:

(1)運行時用鼠標(biāo)選擇對象。

(2)運行時用快捷鍵選擇對象。

(3)在代碼中用SetFocus方法。對于大多數(shù)可以接收焦點的控件來說,當(dāng)它們具有焦點時,它們的周圍將顯示一個虛線框;而當(dāng)文本框具有焦點時,插入的光標(biāo)將在文本框中閃爍。

只有當(dāng)對象的Enabled和Visible屬性為True時,它才能接收焦點。Enabled屬性允許對象響應(yīng)由用戶產(chǎn)生的事件,如鍵盤和鼠標(biāo)事件。Visible屬性決定了對象在屏幕上是否可見。

注意:所有的Frame、Label、Menu、Line、Shape、Image、Timer都不能接收焦點,只有不包含任何可接收焦點的控件的窗體才能接收焦點。7.4.2VisualBasic常用控件

1.命令按鈕(CommandButton控件)

CommandButton控件被用來啟動、中斷或結(jié)束一個進程。單擊它時將調(diào)用已寫入Click事件過程中的命令。大多數(shù)VisualBasic應(yīng)用程序中都有命令按鈕,用戶可以單擊按鈕執(zhí)行操作。單擊時,按鈕不僅能執(zhí)行相應(yīng)的操作,而且看起來就像是被按下和松開一樣,因此有時稱其為下壓按鈕。

1)向窗體添加命令按鈕

在應(yīng)用程序中很可能要使用一個或多個命令按鈕。用戶可以用VisualBasic提供的CommandButton控件在窗體上添加命令按鈕,并可用鼠標(biāo)調(diào)整命令按鈕的大小,也可通過設(shè)置Height和Width屬性進行調(diào)整。

用Caption屬性改變命令按鈕上顯示的文本。設(shè)計時,可在控件的“屬性”窗口中設(shè)置此屬性。Caption屬性最多包含255個字符。若標(biāo)題超過了命令按鈕的寬度,則會折到下一行。但是,如果控件無法容納其全部長度,則標(biāo)題會被截尾。提示:可以通過設(shè)置Font屬性來改變命令按鈕上顯示文本的字體。

運行時,可用鼠標(biāo)或鍵盤通過下述方法選定命令按鈕:

(1)用鼠標(biāo)單擊按鈕。

(2)按Tab鍵,將焦點轉(zhuǎn)移到按鈕上,然后按Space或Enter鍵選定按鈕。

(3)若命令按鈕是窗體的缺省命令按鈕,則可按Enter鍵選定按鈕;若已把焦點轉(zhuǎn)移到其他控件上,則按Enter鍵選定該按鈕。

(4)若命令按鈕是窗體的缺省取消按鈕,則可按Esc鍵選定按鈕;若已把焦點轉(zhuǎn)移到其他控件上,則按Esc鍵取消該按鈕。另外,用戶還可通過Caption屬性創(chuàng)建命令按鈕的訪問鍵快捷方式,即在命令按鈕的字母前添加一個連字符(&)。例如,要為“Print”按鈕創(chuàng)建訪問鍵,應(yīng)在字母“P”前添加連字符,于是得到“&Print”。運行時,字母“P”將帶下劃線,同時按Alt+P組合鍵就可選定命令按鈕。

注意:如果不創(chuàng)建訪問鍵,而又要使標(biāo)題中包含連字符,則應(yīng)添加兩個連字符(&&),這樣標(biāo)題中就只顯示一個連字符,而不顯示下劃線了。

2)命令按鈕的屬性和事件

下面介紹CommandButton控件的主要屬性和事件。

(1)?Default和Cancel屬性。在每個窗體上部可選擇一個命令按鈕作為缺省的命令按鈕,也就是說,不管窗體上的哪個控件有焦點,只要用戶按Enter鍵,就已單擊此缺省按鈕。為了指定一個缺省命令按鈕,應(yīng)將其Default屬性設(shè)置為True。

(2)?Value屬性。無論何時選定命令按鈕都會將其Value屬性設(shè)置為True并觸發(fā)Click事件。若Value屬性為False(缺省),則指示未選擇按鈕??稍诖a中用Value屬性觸發(fā)命令按鈕的Click事件。

例如:

cmdClose.Value=True

(3)?Click事件。單擊命令按鈕時將觸發(fā)按鈕的Click事件,并調(diào)用已寫入Click事件過程中的代碼。單擊命令按鈕后也將生成MouseDown和MouseUp事件。如果要在這些相關(guān)事件中附加事件過程,則應(yīng)確保操作不發(fā)生沖突??丶煌@三個事件過程發(fā)生的順序也不同。CommandButton控件中事件的發(fā)生順序為MouseDown、Click、MouseUp。

注意:如果用戶試圖雙擊CommandBotton控件,則其中每次單擊都將被分別處理;即CommandButton控件不支持雙擊事件。

3)帶圖案的命令按鈕

像復(fù)選框和選項按鈕一樣,可通過更改Style屬性設(shè)置值后,用Picture、DownPicture和DisabledPicture屬性增強視覺效果。要使用帶圖案的按鈕,可按以下步驟進行:

(1)選中要加載圖案的命令按鈕,然后在屬性窗口中將該控件的Style屬性設(shè)置為1。

(2)選擇按鈕的Picture屬性,單擊右邊的瀏覽按鈕,打開“加載圖片”對話框,用戶可以從Graphics子文件夾中選擇一個圖片放在按鈕中。

2.文本框(TextBox控件)

TextBox控件用來在運行時顯示用戶輸入的信息,或者在設(shè)計或運行時為控件的Text屬性賦值。TextBox控件可用于編輯文本,也可將其Locked屬性設(shè)置為True,使其成為只讀的。另外,還可用文本框?qū)崿F(xiàn)多行顯示、根據(jù)控件的尺寸自動換行以及添加基本格式等功能。

TextBox控件的一個重要屬性是Text屬性,它包含輸入到TextBox控件中的文本。缺省時,文本框中輸入的字符最多為2048個。若將控件的MultiLine屬性設(shè)置為True,則可輸入多達32K的文本。

TextBox中顯示的實際文本是受Text屬性控制的。Text屬性可以用三種方式設(shè)置:在屬性窗口進行設(shè)置,運行時通過代碼設(shè)置,以及在運行時由用戶輸入。通過讀Text屬性,能在運行時檢索TextBox的內(nèi)容。

1)使用TextBox中的文本

利用TextBox的SelStart、SelLength和SelText屬性,可以控制TextBox的插入點和選擇行為。這些屬性僅能在運行時使用。當(dāng)一個TextBox首次得到焦點時,TextBox缺省的插入點和光標(biāo)位置在文本的最左邊,用戶可以用鍵盤和鼠標(biāo)移動它們。當(dāng)TextBox失去焦點之后再得到時,插入點位置與用戶最后設(shè)置的位置一樣。使用SelStart和SelLength屬性,用戶可以根據(jù)需要改變TextBox的行為。

SelStart屬性是一個數(shù)值,指示文本串內(nèi)的插入點,其中0表示最左邊的位置。如果SelStart屬性值大于或等于文本中的字符數(shù),那么插入點將被放在最后一個字符之后。

SelLength屬性是一個設(shè)置插入點寬度的數(shù)值。把SelLength設(shè)為大于0的值,會選中并反白顯示從當(dāng)前插入點開始的SelLength個字符。

如果有一段文本被選中,則此時用戶鍵入的文字將替換被選中的文本。在有些情況下,也可以用粘貼命令使新文本替換原有的文本。SelText屬性是一串文本,可以在運行時給它賦值以替換當(dāng)前選中的文本。如果沒有選中文本,將在當(dāng)前插入SelText文本。

2)多行TextBox

TextBox在缺省情況下只顯示單行文本,且不顯示滾動條(ScrollBar)。如果文本長度超過可用空間,則只能顯示部分文本。通過設(shè)置MultiLine和ScrollBars兩種屬性(只能在設(shè)計程序時設(shè)置),可以改變TextBox的外觀和行為。

注意:不要把ScrollBars屬性與ScrollBar控件混淆,ScrollBar控件并不屬于TextBox,它具有自己的屬性集。把MultiLine屬性設(shè)為True,可以使TextBox在運行時接受或顯示多行文本。只要沒有水平方向的ScrollBar,多行TextBox中的文本就會自動按字換行,這省去了用戶在行尾插入換行符的麻煩。當(dāng)一行文本超過所能顯示的長度時,TextBox會自動將文本折回到下一行顯示。

在設(shè)計時,不能在“屬性”窗口輸入換行符。在過程中,可以通過插入一個回車鍵加上換行符來產(chǎn)生一個斷點,也可以用常量vbCrLf插入一個回車鍵與換行符的組合。

3)創(chuàng)建密碼文本框

密碼框是一個文本框,允許在用戶輸入密碼的同時顯示星號之類的占位符。VisualBasic提供了PasswordChar和MaxLength這兩種文本框?qū)傩?,大大簡化了密碼文本框的創(chuàng)建。

PasswordChar指定顯示在文本框中的字符。例如,若希望在密碼框中顯示星號,則可在“屬性”窗口或在程序中將PasswordChar屬性指定為“*”。無論用戶輸入什么字符,文本框中都顯示星號。

可用MaxLength設(shè)置輸入文本框的字符數(shù)。輸入的字符數(shù)超過MaxLength后,系統(tǒng)不接受多出的字符并發(fā)出“嘟嘟”聲。

4)創(chuàng)建只讀文本框

用戶還可用Locked屬性創(chuàng)建只讀文本框。將Locked屬性設(shè)置為True后,用戶就可滾動文本框中的文本并將其突出顯示,但不能對此文本進行任何變更。將Locked屬性設(shè)置為True后,在文本框中可以使用“復(fù)制”命令,但不能使用“剪切”和“粘貼”命令。Locked屬性只影響運行時的用戶界面,但這時仍可變更Text屬性,方法是在運行時通過代碼改變文本框的內(nèi)容。

另外,引號("")有時也出現(xiàn)在文本的字符串中,因為賦予變量或?qū)傩缘淖址加靡?"")括起來,所以對于字符串中要顯示的一對引號,必須再插入一對附加的引號。VisualBasic將并列的兩對引號解釋為嵌入的引導(dǎo)。

3.標(biāo)簽(Label控件)

Label控件顯示的文本用戶不能直接修改。在Label中,實際顯示的文本是由Caption屬性控制的,該屬性可以在設(shè)計時在屬性窗口中設(shè)置,或者在運行時用代碼賦值。

在缺省情況下,標(biāo)題是Lable控件中惟一可見的部分。但是,如果把BorderStyle屬性設(shè)成1(也可以在設(shè)計時進行),那么Lable就有了一個邊框,這時它看起來就像一個TextBox。還可以通過設(shè)置Label的BackColor、BackStyle、ForeColor和Fort屬性,改變Label的外觀。使用標(biāo)簽的情況很多,目的也不盡相同。通常用標(biāo)簽來標(biāo)注本身不具有Caption屬性的控件。例如,可用Label控件為文本框、列表框、組合框等控件添加描述性的標(biāo)簽;也可用它們?yōu)榇绑w添加說明文字,例如向用戶提供幫助信息;還可編寫代碼改變Label控件顯示的文本內(nèi)容以影響運行時的事件。例如,當(dāng)程序需要用幾分鐘處理某個變更時,可用標(biāo)簽顯示處理狀況消息。因為Label控件不接受焦點,所以被用來為其他控件創(chuàng)建顯示出來的訪問鍵。

1)設(shè)置標(biāo)簽的標(biāo)題

為了改變Label控件顯示的文本,可使用Caption屬性。設(shè)計時,可從控件的屬性窗口中設(shè)置此屬性。Caption屬性的長度最長可設(shè)置成1024字節(jié)。

缺省情況下,當(dāng)輸入到Caption屬性的文本超過控件寬度時,文本會自動換行;而在超過控件高度時,超出部分將被裁剪掉。

如果要輸入一個較長的或在運行時可能變化的標(biāo)題,可使用Label提供的兩種屬性:AutoSize和WordWrap,幫助用戶改變控件尺寸以適合較長或較短的標(biāo)題。

AutoSize屬性決定控件是否自動改變尺寸以適應(yīng)其內(nèi)容。如該屬性設(shè)為True,Label就會根據(jù)標(biāo)題內(nèi)容進行水平方向的變化。

WordWrap屬性使Label根據(jù)其內(nèi)容進行垂直方向的變化,而保持其寬度不變。

注意:要想使Label的WordWrap屬性起作用,就必須設(shè)置AutoSize為True。只有在一個單字的寬度超過控件的當(dāng)前寬度時,Label的寬度才會增加。

2)用標(biāo)簽創(chuàng)建訪問鍵

如果要將Caption屬性中的字符定義成訪問鍵,應(yīng)將UseMnemonic屬性設(shè)置為True。定義了Label控件的訪問鍵后,用戶按Alt加指定的字符,就可將焦點按Tab鍵次序移動到下一個控件。

在作為訪問鍵的字母之前添加一個連字符(&),就可以為其他具有Caption屬性的控件創(chuàng)建訪問鍵。標(biāo)簽不接受焦點,因此焦點會按照Tab鍵次序自動移動到下一控件處??捎么斯δ転槲谋究?、圖片框、組合框、列表框、驅(qū)動器列表框、目錄列表框、網(wǎng)格和圖像指定訪問鍵。將標(biāo)簽指定為控件的訪問鍵,可按以下步驟進行:

(1)首先繪制標(biāo)簽,然后再繪制控件,或者以任意順序繪制控件,并將標(biāo)簽的TabIndex屬性設(shè)置為控件的TabIndex屬性減1。

(2)在標(biāo)簽的屬性中用連字符為標(biāo)簽指定訪問鍵。

注意:有時可能要在Label控件中顯示連字符而不是用它們創(chuàng)建訪問鍵。如在一個記錄集中,數(shù)據(jù)包含連字符,而且要將Label控件綁定到記錄集的某個字段,就會出現(xiàn)上述情況。為在Label控件中顯示連字符,應(yīng)將UseMnemonic屬性設(shè)置為False。

4.選項按鈕(OptionButton控件)

選項按鈕表示給用戶一組兩個或更多選擇。但是,不同于CheckBox,選項按鈕總是作為一個組中的組成部分。因此,選擇一個選項按鈕就會立即清除該組中的其他按鈕。

1)創(chuàng)建選項按鈕組

要將選項按鈕分組,可把它們繪制在不同的容器控件中,例如Frame控件、PictureBox控件或窗體容器控件。運行時,用戶在每個選項組中只能選定一個選項按鈕。例如,如果把選項按鈕分別添加到窗體和窗體上的一個Frame控件中,則相當(dāng)于創(chuàng)建了兩組不同的選項按鈕。所有直接添加到窗體的選項按鈕成為一組選項按鈕。要添加附加按鈕組,應(yīng)把按鈕放置在Frame或PictureBox控件中。設(shè)計時,可選擇在Frame控件或PictureBox控件中的選項按鈕,并把它們作為一個單元來移動。

要選定Frame控件、PictureBox控件或窗體中所包含的多個控件時,可在按住Ctrl鍵的同時用鼠標(biāo)在這些控件周圍繪制一個方框。在Frame中畫了一組選項按鈕后,用戶只能在組內(nèi)選擇一個選項按鈕。

在Frame中為控件分組的步驟如下:

(1)在“工具箱”中選擇“Frame”控件,并在窗體上畫出Frame。

(2)在“工具箱”中選擇“OptionButton”控件,并在Frame內(nèi)畫出該控件。

(3)如果還想在Frame中增加選項按鈕,則重復(fù)步驟(2)。

注意:先畫Frame,再在Frame上畫每個控件,這樣移動Frame時控件會一起移動。如果將已經(jīng)存在的控件移到Frame上,此控件不會和Frame一起移動。

2)選定或禁止選項按鈕

一個選項按鈕可以用以下方法選擇:

(1)在運行期間用鼠標(biāo)單擊選項按鈕。

(2)用Tab鍵定位到選項按鈕組,然后在組內(nèi)使用方向鍵(箭頭鍵)定位選項按鈕。

(3)用代碼將選項按鈕的Value屬性設(shè)置為True。

(4)使用在Label的標(biāo)題中指定的快捷鍵。

3)選項按鈕的事件和屬性

選項按鈕常用的事件是Click事件,常用的屬性是Value和Caption屬性。

(1)?Click事件。選定選項按鈕時將觸發(fā)其Click事件。是否有必要響應(yīng)此事件,這將取決于應(yīng)用程序的功能。例如,當(dāng)希望通過更新Label控件的標(biāo)題向用戶提供有關(guān)選定項目的信息時,對此事件作出響應(yīng)是很有益的。

(2)?Value屬性。選項按鈕的Value屬性指出是否選定了此按鈕,選定時數(shù)值將變?yōu)門rue??稍诖a中設(shè)置選項按鈕的Value屬性來選定按鈕。

(3)?Caption屬性??捎肅aption屬性為選項按鈕創(chuàng)建訪問鍵快捷方式,這只要在作為訪問鍵的字母前添加一個連字符(&)即可。

5.復(fù)選框(CheckBox控件)

CheckBox用以表明一個特定的狀態(tài)是選定(On)還是清除(Off)。在應(yīng)用程序中使用CheckBox為用戶提供“True/False”或“Yes/No”的選擇。因為CheckBox彼此獨立工作,所以用戶可以同時選擇任意多個CheckBox。

提示:CheckBox控件與OptionButton控件的相同之處在于它們都是用來指示用戶所作的選擇;其不同之處在于,對于一組OptionButton,一次只能選定其中的一個,而對CheckBox控件,則可選定任意數(shù)目的復(fù)選框。復(fù)選框的常用屬性和事件分別是Value屬性和Click事件。

(1)?Value屬性。CheckBox控件的Value屬性指示復(fù)選框處于選定、未選定或禁止?fàn)顟B(tài)中的哪一種。選定時,Value設(shè)置值為1。

用戶單擊CheckBox控件指定選定或未選定狀態(tài),然后可檢測控件狀態(tài),并根據(jù)此信息編寫應(yīng)用程序以執(zhí)行某些操作。缺省時,CheckBox控件設(shè)置為vbUnchecked。若要預(yù)先在一列復(fù)選框中選定若干復(fù)選框,則應(yīng)在Form_Load或Form_Initialize過程中將Value屬性設(shè)置為vbChecked??蓪alue屬性設(shè)置為vbGrayed以禁用復(fù)選框。

(2)?Click事件。無論何時單擊CheckBox控件都將觸發(fā)Click事件,然后編寫應(yīng)用程序,根據(jù)復(fù)選框的狀態(tài)執(zhí)行某些操作。

注意:如果用戶試圖雙擊CheckBox控件,則雙擊將被當(dāng)作兩次單擊分別處理。這就是說,CheckBox控件不支持雙擊事件。

6.列表框(ListBox控件)

列表框為用戶提供了選項列表。雖然也可設(shè)置多列列表,但缺省時各選項在單列列表中垂直顯示。如果選項數(shù)目超過列表框可顯示的數(shù)目,則控件上將自動出現(xiàn)滾動條。

1)?Click和Double_Click事件

對于列表框事件,特別是當(dāng)列表框作為對話框的一部分出現(xiàn)時,建議添加一個命令按鈕,并把該按鈕同列表框并用。按鈕的Click事件過程應(yīng)該使列表框的選項執(zhí)行適于應(yīng)用程序的操作。雙擊列表中的項目與先選定項目然后單擊命令按鈕,這兩者應(yīng)該具有相同的效果。為此,應(yīng)在ListBox控件的DblClick過程中調(diào)用命令按鈕的Click過程:

PrivateSubList1_DblClick()

Commandl_Click

EndSub

也可將命令按鈕的Value屬性值設(shè)置為True,這就將自動調(diào)用事件過程:

PrivateSubList1_DblClick()

Command1.Value=True

EndSub

2)向列表增減項目

為了向列表框中添加項目,應(yīng)使用AddItem方法,其語法如下:

控件名.AddItem項目[,索引值]

其中,“控件名”是列表框的名稱?!绊椖俊笔翘砑拥搅斜碇械淖址磉_式。若“項目”是文字常數(shù),則用引號將它括起來?!八饕怠敝付ㄔ诹斜碇胁迦胄马椖康奈恢谩!八饕怠睘?表示第一個位置。若省略“索引值”,則將項目插入在末尾(或按排序次序插入在適當(dāng)?shù)奈恢?。

通常在Form_Load事件過程中添加列表項目,但也可在任何時候使用AddItem方法添加項目,即可動態(tài)(響應(yīng)用戶的操作)添加項目。提示:為了在指定位置添加項目,應(yīng)對新項目指定索引值。

另外,用戶可用RemoveItem方法從列表框中刪除項目。RemoveItem方法的語法如下:

控件名.RemoveItem項目[,索引值]

其中,“控件名”和“索引值”參數(shù)與AddItem中的參數(shù)相同。例如,要刪除列表中的第一個項目,可添加下行代碼:

List1.RemoveItem()

3)獲取列表內(nèi)容

如果用戶希望在程序運行時能夠使用列表中的項目,常常要用到Text、List、ListIndex和ListCount屬性。

(1)?Text屬性。通常,獲取當(dāng)前選定項目值的最簡單方法是使用Text屬性。Text屬性總是對應(yīng)用戶在運行時選定的列表項目。例如,下列代碼在用戶從列表框中選定“Canada”時顯示有關(guān)加拿大人口的信息:

PrivateSubList1_Click()

IfList1.Text=“Canada”Then

Text1.Text=“Canadahas24millionpeople.”

EndIf

EndSub

(2)?List屬性。用戶還可用List屬性訪問列表的全部項目。此屬性包含一個數(shù)組,列表的每個項目都是數(shù)組的元素,每個項目以字符串形式表示。引用列表的項目時應(yīng)使用如下語法:

控件名.List(索引值)

其中,“控件名”參數(shù)是列表框的引用,“索引值”是項目的位置。頂端項目的索引為0,接下來的項目索引為1,依此類推。例如,下列語句在一個文本框中顯示列表的第三個項目(index=2):

Text1.Text=List1.List(2)

(3)?ListIndex屬性。如果要了解列表中已選項目的位置,則用ListIndex屬性。此屬性只在運行時可用,它設(shè)置或返回控件中當(dāng)前選定項目的索引。設(shè)置列表框的ListIndex屬性也將觸發(fā)控件的Click事件。

如果選定第一個(頂端)項目,則屬性的值為0;如果選定下一個項目,則屬性的值為1,依此類推。若未選定項目,則ListIndex值為-1。

注意:NewIndex屬性可用來跟蹤添加到列表的最后一個項目的索引。在向排序列表插入項目時,這一點十分有用。

(4)?ListCount屬性。為了返回列表框中項目的數(shù)目,應(yīng)使用ListCount屬性。例如,下列語句用ListCount屬性判斷列表框中的項目數(shù):

Text1.Text="Youhave"&List1.ListCount&"entrieslisted"

7.組合框(ComboBox控件)

組合框控件將文本框和列表框的功能結(jié)合在一起。有了這個控件,用戶可通過在組合框中輸入文本來選定項目,也可從列表中選定項目。組合框向用戶提供了供選擇的列表。如果項目數(shù)超過了組合框能夠顯示的項目數(shù),控件上將自動出現(xiàn)滾動條,用戶即可上下或左右滾動列表。

通常,組合框適用于建議性的選項列表,而當(dāng)希望將輸入限制在列表之內(nèi)時,應(yīng)使用列表框。組合框包含編輯區(qū)域,因此可將不在列表中的選項輸入到編輯區(qū)域中。

1)組合框的樣式

有三種組合框樣式,每種樣式都可在設(shè)計或運行時來設(shè)置。這三種樣式都是通過數(shù)值或相應(yīng)的VisualBasic常數(shù)來設(shè)置的。

表7-6列出了三種樣式的值和常數(shù)。表7-6組合框三種樣式的值和常數(shù)

(1)下拉式組合框。在缺省設(shè)置(Style=0)下,組合框為下拉式的。用戶可直接輸入文本(像在文本框中一樣),也可單擊組合框右側(cè)的箭頭打開選項列表。選定某個選項后,將此選項插入到組合框頂端的文本部分中。當(dāng)控件獲得焦點時,也可按Alt加向下方向鍵打開列表。

注意:組合框的第一行中有光標(biāo)閃爍,表明用戶可在此輸入新項。

(2)簡單組合框。將組合框的Style屬性設(shè)置為1將指定一個簡單的組合框,任何時候都在其內(nèi)顯示列表。為顯示列表中所有項,必須將列表框繪制得足夠大。當(dāng)選項數(shù)超過可顯示的限制時,將自動插入一個垂直滾動條。用戶可直接在組合框中輸入文本,也可從列表中選擇。像下拉式組合框一樣,簡單組合框也允許用戶輸入那些不在列表中的選項。

(3)下拉式列表框。下拉式列表框(Style=2)與正規(guī)列表框相似,它顯示項目的列表,用戶必須從中選擇。但下拉式列表框與列表框的不同之處在于,除非單擊下拉式列表框右側(cè)的箭頭,否則不顯示列表。這種列表框與下拉式組合框的主要差別在于用戶不能在列表框中輸入選項,而只能在列表中選擇。當(dāng)窗體上的空間較少時,可使用這種類型的列表框。

2)增減列表中的項目

為在組合框中添加項目,應(yīng)使用AddItem方法,其語法如下:

控件名:AddItem項目[,索引值]

其中,“控件名”是列表框的名稱。“項目”是添加到列表中的字符串表達式。若“項目”是文字常數(shù),則用引號將它括起來?!八饕怠敝付ㄔ诹斜碇胁迦胄马椖康奈恢?。“索引值”為0表示第一個位置,若省略“索引值”,則將項目插入在末尾(或按排序次序插入在適當(dāng)?shù)奈恢?。通常在Form_Load事件過程中添加列表項目,但也可在任何時候使用AddItem方法添加項目,即可動態(tài)(響應(yīng)用戶的操作)添加項目。

另外,用戶可用RemoveItem方法從組合框中刪除項目。RemoveItem方法的語法如下:

控件名.RemoveItem項目[,索引值]

其中,“控件名”和“索引值”參數(shù)與AddItem中的參數(shù)相同。例如,要刪除列表中的第一個項目,可添加下行代碼:

Combo1.RemoveItem0

為了在組合框中刪除所有列表項目,應(yīng)使用Clear方法:

Combo1.Clear

3)獲取列表內(nèi)容

如果用戶希望在程序運行時能夠使用列表中的項目,就要用到Text、List、ListIndex和ListCount屬性。

(1)?Text屬性。獲取當(dāng)前選定項目值的最簡單的常用方法就是使用Text屬性。在運行時無論向控件的文本框部分輸入了什么文本,Text屬性都與這個文本相對應(yīng)。此文本可以是選定的列表選項,也可以是用戶在文本框中輸入的字符串。

例如,如果用戶選定列表框中的Chardonnay,則通過下列代碼顯示有關(guān)Chardonnay的信息:

PrivateSubCombo1_Click()

IfCombo1.Text="Chardonnay"Then

Text1.Text="Chardonnayisamedium-bodied_Whitewine."

EndIf

EndSub

(2)?List屬性。有了List屬性就可訪問列表中所有項目。該屬性包含一個數(shù)組,列表中的每個項目都是數(shù)組的元素,每一項都表示為字符串的形式。為了引用列表中的項目,應(yīng)使用如下語法:

[控件名].List(索引值)

其中,“控件名”參數(shù)引自組合框,而“索引值”是項目的位置。頂端項目的索引為0,下一個項目的索引為1,依次類推。例如,在文本框中,以下語句顯示列表中的第三個項目(索引值=2):

Text1.Text=Combo1.List(2)

(3)?ListIndex屬性。欲知組合框列表中選定項目的位置,請使用ListIndex屬性。該屬性設(shè)置或返回控件中當(dāng)前選定項目的索引值,而且只在運行時有效。對組合框的ListIndex屬性進行設(shè)置也會觸發(fā)控件的Click事件。若選定第一個(頂端)項目,則屬性值為0,選定的下一個項目屬性值為1,依次類推。如果未選定項目,或者用戶在組合框中輸入選項(樣式0或1)而不在列表中選擇現(xiàn)有項目,則ListIndex為-1。

注意:NewIndex屬性可用來跟蹤列表中最后添加的項目的索引。向排序列表插入項目時,這一點很有用。

(4)?ListCount屬性。為了返回組合框中的項目數(shù),應(yīng)使用ListCount屬性。例如,下列語句用ListCount屬性判斷組合框中的項目數(shù):

Text1.Text="Youhave"&Combo1.ListCount&"entrieslisted"

8.滾動條

利用滾動條可在應(yīng)用程序或控件中相當(dāng)方便地查看一長列項目或大量信息。滾動條是Windows95/98/NT界面上的共同元素。

在VisualBasic6.0的工具箱里,有兩個滾動條可供選擇,它們是水平滾動條和垂直滾動條。水平、垂直滾動條控件不同于Windows中內(nèi)部的滾動條或VisualBasic6.0中那些附加在文本框、列表框、組合框或MDI窗體上的滾動條。無論何時,只要應(yīng)用程序或控件所包含的信息超過當(dāng)前窗口(或者在ScrollBars為屬性True時的文本框和MDI窗體)所能顯示的信息,滾動條就會自動出現(xiàn)。在較早的VisualBasic版本中,通常用滾動條作為輸入設(shè)備。但目前的Windows界面指南則建議用滑塊取代滾動條作為輸入設(shè)備。VisualBasic6.0專業(yè)版和企業(yè)版都包括Windows95/98的滑塊控件。但滾動條在VisualBasic6.0中仍然有價值,因為它為那些不能自動支持滾動的應(yīng)用程序和控制提供了滾動功能。

使用滾動條控件時,首先應(yīng)了解它的常用事件和屬性。

(1)滾動條控件的主要事件。滾動條控件的主要事件有Change和Scroll事件。在釋放滾動滑塊或單擊滾動條(或滾動箭頭)時,Change事件就會發(fā)生。Scroll事件在移動滾動滑塊時發(fā)生,在單擊滾動箭頭或滾動條時不發(fā)生。用戶可用Scroll事件訪問滾動條被拖動后的數(shù)值。

(2)滾動條控件的主要屬性。滾動條控件的主要屬性是Value、LargeChange和SmallChange屬性。

Value屬性(缺省值為0)是一個整數(shù),它對應(yīng)于滾動條中滾動滑塊的位置。當(dāng)滾動滑塊在最小值時,它將移動到滾動條的最左端位置(水平滾動條)或頂端位置(垂直滾動條)。當(dāng)滾動滑塊在最大值時,它將移動到滾動條的最右端或底端位置。同樣,滾動滑塊取中間數(shù)值時將位于滾動條的中間位置。

除了可用鼠標(biāo)單擊改變滾動滑塊位置外,也可將滾動滑塊沿滾動條拖動到任意位置,此位置數(shù)值總是在用戶所設(shè)置的Min和Max屬性之間。為了指定滾動條中的移動量,對于單擊滾動條的情況可用LargeChange屬性對其進行設(shè)置;對于單擊滾動條兩端箭頭的情況可用SmallChange屬性。滾動條的Value屬性增加或減少的長度是由LargeChange和SmallChange屬性設(shè)置的數(shù)值決定的。要設(shè)置滾動滑塊在運行時的位置,可將Value屬性設(shè)為0到32?767中的某個數(shù)值(包括0和32?767)。

9.ActiveX控件簡介

ActiveX控件是VisualBasic6.0工具箱的擴充部分,使用ActiveX控件的方法與使用其他標(biāo)準(zhǔn)內(nèi)裝的控件(如CommandButton控件)完全一樣。在程序中加入ActiveX控件后,它將成為開發(fā)和運行環(huán)境的一部分,并為應(yīng)用程序提供新的功能。

ActiveX控件保留了一些熟悉的屬性、事件和方法,如Name屬性。而且ActiveX控件特有的方法和屬性大大增強了VisualBasic用戶的能力和靈活性。例如,VisualBasic6.0專業(yè)版和企業(yè)版包括了Windows公共控件,用戶可以使用它們創(chuàng)建具有Windows95/98面貌和風(fēng)格的工具欄、狀態(tài)欄以及選項卡、對話框的應(yīng)用程序。此外,還有一些ActiveX控件可以用來創(chuàng)建具有Internet功能的應(yīng)用程序。用戶如果要使用ActiveX控件,首先應(yīng)該將它們添加到工具箱中。在工程的工具箱中加入ActiveX控件的方法如下:

(1)在“工程”菜單中選擇“部件”項,或者在工具箱中單擊鼠標(biāo)右鍵,然后從快捷菜單中選擇“部件”項,以顯示“部件”對話框。在該對話框中列出了所有已注冊的可加入對象、設(shè)計器和ActiveX控件。

(2)選中要加入工具箱的ActiveX控件名稱前的復(fù)選框。

(3)單擊“確定”按鈕,關(guān)閉“部件”對話框。所有選定的ActiveX控件將出現(xiàn)在工具箱中。如果要將其他的ActiveX控件加入“部件”對話框,可以單擊“部件”對話框的“瀏覽”按鈕,并找到擴展名為?.OCX的文件,再將ActiveX控件加入可用控件列表中,VisualBasic自動在“部件”對話框中選中它的復(fù)選框。

如果要從工程中刪除控件,則應(yīng)執(zhí)行如下操作:

(1)在“工程”菜單中,選擇“部件”命令,或者在工具箱中單擊鼠標(biāo)右鍵,然后從快捷菜單中選擇“部件”命令,以顯示“部件”對話框。在該對話框中列出了所有已注冊的可加入對象、設(shè)計器和ActiveX控件。

(2)清除要在工作箱中刪除的ActiveX控件名稱前的復(fù)選框。

(3)單擊“確定”按鈕,關(guān)閉“部件”對話框,所有選定的ActiveX控件將從工具箱中消失。

注意:若某個控件的一個實例被這個工程的任何窗體所用,則不能從工具箱中刪掉這個控件。

用戶可以看到,在“部件”對話框的控件列表中有一項為“MicrosoftCommonDialogControl6.0”,它就是VisualBasic6.0的通用對話框控件。7.4.3VisualBasic6.0窗體的設(shè)計

1.窗體的外觀

在Windows中有各種各樣的窗口,它們的外觀不盡相同,但都有一些共同點,如系統(tǒng)菜單、最小化按鈕、關(guān)閉按鈕等。

一個標(biāo)準(zhǔn)窗體由標(biāo)題欄和客戶區(qū)兩部分組成。標(biāo)題欄中又包括窗體的圖標(biāo)、標(biāo)題、系統(tǒng)菜單、最小化按鈕、最大化按鈕(還原按鈕)和關(guān)閉按鈕等部分。

(1)窗體的圖標(biāo)。窗體的圖標(biāo)在標(biāo)題的最左邊,由窗體的Icon屬性指定,缺省情況下顯示VisualBasic的默認(rèn)圖標(biāo)。如果厭倦了呆板的默認(rèn)圖標(biāo),可以用相應(yīng)的應(yīng)用程序設(shè)計自己喜歡的圖標(biāo),或者直接引用其他應(yīng)用程序的圖標(biāo)。單擊窗體的圖標(biāo)可以打開系統(tǒng)菜單。

(2)窗體的標(biāo)題。圖標(biāo)的右邊就是窗體的標(biāo)題,由窗體的Caption屬性指定。缺省情況下VisualBasic為新產(chǎn)生的窗體命名為Forml、Form2等。

(3)系統(tǒng)菜單。系統(tǒng)菜單共有恢復(fù)、移動、大小、最小化、最大化和關(guān)閉六欄。這些功能和標(biāo)題欄右邊按鈕的功能是一樣的,只不過系統(tǒng)菜單提供了用鍵盤執(zhí)行這些功能的途徑。

(4)最小化按鈕。單擊此按鈕可以將窗體最小化,此時窗體只有一個圖標(biāo)顯示在系統(tǒng)的任務(wù)欄中。

(5)最大化按鈕(還原按鈕)。單擊此按鈕可以將窗體最大化,同時此按鈕變成還原按鈕,單擊還原按鈕可將最大化的窗體恢復(fù)到最大化之前的大小。

(6)關(guān)閉按鈕。單擊此按鈕可以將窗體關(guān)閉。

(7)客戶區(qū)。標(biāo)題欄的下面是客戶區(qū)??蛻魠^(qū)是程序?qū)崿F(xiàn)功能的主要區(qū)域。

用VisualBasic編程的一大優(yōu)點是,所有這些窗體的標(biāo)準(zhǔn)部分都由系統(tǒng)自動產(chǎn)生,用戶不用編寫這些代碼。

2.窗體的屬性

窗體的許多屬性會影響窗體的外觀。要熟悉這些窗體的屬性,最好的辦法是實踐。在“屬性”窗口中更改窗體的一些屬性,然后運行該應(yīng)用程序并觀察修改的效果。要想詳細(xì)了解每個屬性,可以選擇該屬性并按F1鍵查看聯(lián)機幫助。

(1)名稱屬性。首次在工程中添加窗體時,該窗體的名稱被缺省設(shè)置為Forml;添加第二個窗體,其名稱被缺省設(shè)置為Form2,依此類推。一般情況下應(yīng)該在“名稱”屬性設(shè)置中為窗體設(shè)置一個有實際意義的名稱,如將顯示窗體命名為“firmDisplay”。

(2)?Appearance屬性。該屬性用于設(shè)置窗體的外觀,缺省時為3D形式,可以設(shè)置為平面形式(O-Flat)。

(3)?BackColor屬性。該屬性用于設(shè)置窗體的背景顏色,缺省時為系統(tǒng)顏色中的按鈕表面顏色。

(4)?BorderStyle屬性。該屬性用于設(shè)置窗體的邊框樣式,其屬性設(shè)置值如表7-7所示。表7-7BorderStyle屬性設(shè)置值

(5)?Caption屬性。Caption屬性決定窗體標(biāo)題欄中顯示的文本。當(dāng)創(chuàng)建一個新的窗體時,其缺省標(biāo)題為缺省的“名稱”屬性設(shè)置。為了獲得一個描述更清楚的標(biāo)簽,應(yīng)對Caption屬性進行設(shè)置。

(6)?ForeColor屬性。該屬性用于設(shè)置窗體中文本和圖形的前景色,缺省時為系統(tǒng)顏色中的按鈕文本顏色。

(7)?Height屬性。該屬性用于設(shè)置窗體的高度。

(8)?Icon屬性。該屬性用于設(shè)置運行窗體處于最小化時顯示的圖標(biāo)??梢詾榇绑w分配惟一的圖標(biāo)以辨識該窗體的功能。Icon屬性中所加載的文件必須有?.ICO文件擴展名和格式。如果不指定圖標(biāo),窗體會使用VisualBasic缺省圖標(biāo)。

注意:在Windows95中可以在窗體的左上角看到窗體的圖標(biāo),若想在Windows95/NT窗體最小化時看到圖標(biāo),則當(dāng)窗體最小化時,BorderStyle屬性值必須設(shè)置為1(固定單邊框)或2(可變尺寸),并且MinButton屬性必須設(shè)置為True,以使圖標(biāo)可見。

(9)?Left屬性。該屬性用于設(shè)置窗體左邊緣與屏幕左邊緣之間的距離。

(10)?MaxButton屬性。該屬性用于設(shè)置一個窗體是否具有最大化按鈕。要顯示最大化按鈕,必須將BorderStyle屬性設(shè)置為1(固定單邊框)、2(可變尺寸)或3(固定雙邊框)。

(11)?MinButton屬性。該屬性用于設(shè)置一個窗體是否具有最小化按鈕。要顯示最小化按鈕,必須將BorderStyle屬性設(shè)置為1(固定單邊框)、2(可變尺寸)或3(固定雙邊框)。

(12)?MouseIcon屬性。該屬性用于設(shè)置自定義的鼠標(biāo)圖標(biāo),它在MousePointer屬性為99時使用。MouseIcon屬性使程序能夠很容易地訪問自定義光標(biāo),它可以是任意大小并具有任何熱點位置的光標(biāo)。

(13)?MousePointer屬性。該屬性用于設(shè)置在運行過程中,當(dāng)鼠標(biāo)移動到對象的一個特定部分時,被顯示的鼠標(biāo)指針的類型。在鼠標(biāo)指針越過窗體或?qū)υ捒蛏系目丶r,為了指出功能上的改變,可以使用該屬性。其屬性設(shè)置值如表7-8所示。

(14)?Moveable屬性。該屬性用于設(shè)置窗體是否可移動,默認(rèn)設(shè)置為可以移動(True)。

(15)?Picture屬性。該屬性用于設(shè)置窗體中要顯示的圖片。在設(shè)計時設(shè)置Picture屬性,圖片被保存起來并與窗體同時加載。如果創(chuàng)建可執(zhí)行文件,該文件中包含該圖像。表7-8MousePointer屬性設(shè)置值

(16)?ScaleMode屬性。當(dāng)使用圖形方法或調(diào)整控件位置時,利用此屬性設(shè)置一個值指示對象坐標(biāo)的度量單位。相關(guān)的ScaleHeight、ScaleWidth與ScaleTop屬性的使用,可以建立起一個帶有正、負(fù)坐標(biāo)的自定義坐標(biāo)系統(tǒng)。ScaleMode屬性設(shè)置值見表7-9。表7-9ScaleMode屬性設(shè)置值

(17)?ShowInTaskbar屬性。該屬性用于設(shè)置一個值,該值決定一個Form對象是否出現(xiàn)在Windows95任務(wù)欄中。該值在運行時為只讀狀態(tài)。ShowInTakbar屬性的缺省值假定為該Form對象的BorderStyle屬性的缺省設(shè)置(Sizable)。改變BorderStyle屬性將會改變ShowInTaskbar屬性的設(shè)置。

(18)?StartUpPosition屬性。該屬性用于設(shè)置窗體首次出現(xiàn)時的位置,運行時不能使用。StartUpPosition屬性設(shè)置值如表7-10所示。表7-10StartUpPosition屬性設(shè)置值

(19)?Visible屬性。該屬性用于設(shè)置窗體是否可見。要在啟動時隱藏一個對象,則在設(shè)計時將Visible屬性設(shè)置為False。在代碼中設(shè)置該屬性能夠在運行時隱藏窗體,然后又重新顯示控件以響應(yīng)某特別事件。對窗體用Show或Hide方法與在代碼中將Visible屬性分別設(shè)置為True或False的效果是一樣的。

(20)?Width屬性。該屬性用于設(shè)置窗體的寬度。

(21)?WindowState屬性。該屬性用于設(shè)置在運行時窗體窗口的可視狀態(tài)。WindowState屬性設(shè)置值如表7-11所示。表7-11WindowState屬性設(shè)置值

3.窗體的事件

VisualBasic6.0為窗體提供了31種事件,以下介紹其中最常見的幾種。

(1)?Initialize事件。該事件在應(yīng)用程序創(chuàng)建窗體時發(fā)生,在Load事件之前發(fā)生。

(2)?Load事件。此事件在一個窗體被裝載時發(fā)生。當(dāng)使用Load語句啟動應(yīng)用程序或引用未裝載的窗體屬性或控件時,此事件發(fā)生。通常,Load事件過程用來包含一個窗體的啟動代碼。例如,指定控件缺省設(shè)置值,指明將要裝入ComboBox或ListBox控件的內(nèi)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論