第2章 VB程序設(shè)計(jì)-對(duì)象_第1頁(yè)
第2章 VB程序設(shè)計(jì)-對(duì)象_第2頁(yè)
第2章 VB程序設(shè)計(jì)-對(duì)象_第3頁(yè)
第2章 VB程序設(shè)計(jì)-對(duì)象_第4頁(yè)
第2章 VB程序設(shè)計(jì)-對(duì)象_第5頁(yè)
已閱讀5頁(yè),還剩78頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第2章對(duì)象2.1對(duì)象及其屬性設(shè)置2.2窗體2.3控件2.4控件的畫(huà)法和基本操作編程思想主要分為兩類(lèi):面向過(guò)程和面向?qū)ο蟆#?)面向過(guò)程

是一種以過(guò)程為中心的編程思想,也可稱(chēng)之為“面向記錄”編程思想,它不支持豐富的“面向?qū)ο蟆碧匦裕ū热缋^承、多態(tài)),并且它不允許混合持久化狀態(tài)和域邏輯。就是分析出解決問(wèn)題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時(shí)候一個(gè)一個(gè)依次調(diào)用就可以了。編程思想編程思想主要分為兩類(lèi):面向過(guò)程和面向?qū)ο?。?)面向?qū)ο?/p>

是一種以事物為中心的編程思想,具有封裝、繼承和多態(tài)的特性。就是把構(gòu)成問(wèn)題的事務(wù)分解成若干個(gè)對(duì)象,建立對(duì)象的目的不是為了完成一個(gè)步驟,而是為了描述某個(gè)事物在整個(gè)解決問(wèn)題步驟中的行為。編程思想編程思想主要分為兩類(lèi):面向過(guò)程和面向?qū)ο蟆#?)公共汽車(chē)“面向過(guò)程”就是汽車(chē)啟動(dòng)是一個(gè)事件,汽車(chē)到站是另一個(gè)事件。在編程序的時(shí)候我們關(guān)心的是某一個(gè)事件,而不是汽車(chē)本身。我們分別對(duì)啟動(dòng)和到站編寫(xiě)程序。類(lèi)似的還有修理等等。編程思想實(shí)例publicclass運(yùn)營(yíng)

{

void

汽車(chē)啟動(dòng)

{

}

void

汽車(chē)到站

{

}

}編程思想實(shí)例面向過(guò)程編程:“面向?qū)ο蟆毙枰⒁粋€(gè)汽車(chē)的實(shí)體,由實(shí)體引發(fā)事件。我們關(guān)心的是由汽車(chē)抽象成的對(duì)象,這個(gè)對(duì)象有自己的屬性,像輪胎,顏色等;有自己的方法,象啟動(dòng),行駛等。方法也就是汽車(chē)的行為,而不是汽車(chē)的每個(gè)事件。編程思想實(shí)例publicclass汽車(chē)

{

void

到站()

{

}

void

啟動(dòng)()

{

}

}

編程思想實(shí)例面向?qū)ο缶幊蹋壕幊趟枷胫饕譃閮深?lèi):面向過(guò)程和面向?qū)ο?。?)五子棋“面向過(guò)程”的設(shè)計(jì)思路就是首先分析問(wèn)題的步驟:1、開(kāi)始游戲,2、黑子先走,3、繪制畫(huà)面,4、判斷輸贏,5、輪到白子,6、繪制畫(huà)面,7、判斷輸贏,8、返回步驟2,9、輸出最后結(jié)果。

把上面每個(gè)步驟用分別的函數(shù)來(lái)實(shí)現(xiàn),問(wèn)題就解決了。

編程思想實(shí)例“面向?qū)ο蟆钡脑O(shè)計(jì)則是從另外的思路來(lái)解決問(wèn)題。整個(gè)五子棋可以分為:1、黑白雙方,這兩方的行為是一模一樣的,2、棋盤(pán)系統(tǒng),負(fù)責(zé)繪制畫(huà)面,3、規(guī)則系統(tǒng),負(fù)責(zé)判定諸如犯規(guī)、輸贏等。第一類(lèi)對(duì)象(玩家對(duì)象)負(fù)責(zé)接受用戶(hù)輸入,并告知第二類(lèi)對(duì)象(棋盤(pán)對(duì)象)棋子布局的變化,棋盤(pán)對(duì)象接收到了棋子的變化就要負(fù)責(zé)在屏幕上面顯示出這種變化,同時(shí)利用第三類(lèi)對(duì)象(規(guī)則系統(tǒng))來(lái)對(duì)棋局進(jìn)行判定。編程思想實(shí)例★面向?qū)ο笫且怨δ軄?lái)劃分問(wèn)題,而不是步驟。

同樣是繪制棋局,這樣的行為在面向過(guò)程的設(shè)計(jì)中分散在了許多步驟中,很可能出現(xiàn)不同的繪制版本,因?yàn)橥ǔTO(shè)計(jì)人員會(huì)考慮到實(shí)際情況進(jìn)行各種各樣的簡(jiǎn)化。而面向?qū)ο蟮脑O(shè)計(jì)中,繪圖只可能在棋盤(pán)對(duì)象中出現(xiàn),從而保證了繪圖的統(tǒng)一。

★功能上的統(tǒng)一保證了面向?qū)ο笤O(shè)計(jì)的可擴(kuò)展性??梢悦黠@看出,悔棋

五子棋圍棋2.1對(duì)象及其屬性設(shè)置一、什么是對(duì)象?(1)對(duì)象是系統(tǒng)中基本的運(yùn)行實(shí)體。將數(shù)據(jù)和處理該數(shù)據(jù)的過(guò)程(函數(shù)和子程序)打包在一起而生成的新的數(shù)據(jù)類(lèi)型稱(chēng)之為對(duì)象。(2)VisualBasic是一種面向?qū)ο?ObjectOriented)的語(yǔ)言。

在VisualBasic中,所有的窗體和控件都是對(duì)象。

對(duì)象是一個(gè)功能和數(shù)據(jù)獨(dú)立的單元,有其自身的屬性、方法和可為別人所做的工作,互相之間只能通過(guò)對(duì)象認(rèn)可的途徑進(jìn)行通訊來(lái)完成任務(wù),相互之間沒(méi)有預(yù)料不到的影響,也可以較為自由地為各個(gè)不同的軟件所使用。這種代碼共享避免了重復(fù)的代碼設(shè)計(jì),提高了軟件開(kāi)發(fā)的效率。面向?qū)ο蟮脑O(shè)計(jì)方法把系統(tǒng)中的所有資源,如數(shù)據(jù)、模塊以及系統(tǒng)都看成對(duì)象,每個(gè)對(duì)象把一組數(shù)據(jù)類(lèi)型和一組過(guò)程封裝在一起,使得這組過(guò)程了解對(duì)這一數(shù)據(jù)類(lèi)型的處理,并在定義對(duì)象時(shí)可以規(guī)定外界在其運(yùn)行上的權(quán)限。使用這一方法,設(shè)計(jì)人員可以依照自己的意圖創(chuàng)建自己的對(duì)象,并將問(wèn)題映射到該對(duì)象上。

1、預(yù)定義對(duì)象:由系統(tǒng)設(shè)計(jì)的,可直接使用或操作;2、自定義對(duì)象:用戶(hù)根據(jù)自己的需要自己設(shè)計(jì)建立的對(duì)象。窗體和控件是VB最基本的對(duì)象。除此之外還有:打印機(jī)、調(diào)試、剪貼板、屏幕等對(duì)象。二、對(duì)象的分類(lèi)三、如何使用對(duì)象?對(duì)象是具有特殊屬性和行為方式的實(shí)體。通常通過(guò)設(shè)置對(duì)象的屬性、方法和事件來(lái)操作對(duì)象。什么是屬性:屬性是對(duì)象的一個(gè)特性或者該對(duì)象操作的一個(gè)方面。例如,文本框的屬性包括Backcolor、Forecolor、Enabled、Height、Width、Left、Top、Name等屬性。要更改一個(gè)對(duì)象的屬性,可以修改屬性的值。什么是事件(Event):所謂事件是由VisualBasic預(yù)先設(shè)置好的、能被對(duì)象識(shí)別的動(dòng)作。是用戶(hù)與程序交互的紐帶。什么是方法(Method):

VisualBasic的對(duì)象也有動(dòng)作和行為,也就是說(shuō)它們“知道”該怎么做。這些動(dòng)作就叫做對(duì)象的方法。方法就象是動(dòng)詞。例如,窗體的顯示或隱藏就是方法(Demo)。VisualBasic中的窗體和控件都有其各自的屬性。不過(guò),有一些屬性適用于大多數(shù)對(duì)象:Name

設(shè)置控件名稱(chēng),作為訪問(wèn)控件的屬性和方法的依據(jù)。Appearance

設(shè)置控件的外觀。BackColor

設(shè)置顯示文字或繪制圖形時(shí)的背景顏色。ForeColor

設(shè)置前景顏色。Font

設(shè)置控件文本所用字體的種類(lèi)、字號(hào)和屬性。四、常見(jiàn)的屬性Caption

設(shè)置不接受輸入的控件上顯示的文本,如標(biāo)簽的文本。

Text

設(shè)置接受輸入的控件上顯示的文本,如文本框的文本。

Width、Height

設(shè)置控件的尺寸。

Left、Top

設(shè)置控件的左上角坐標(biāo)。

Enabled

設(shè)置控件是否激活。缺省情況下為T(mén)rue;設(shè)置為False時(shí)控件不可用,顏色變?yōu)榛疑?/p>

Visible

設(shè)置控件是否可見(jiàn),缺省時(shí)為可見(jiàn)。五、常見(jiàn)的方法窗體常用的方法

Print方法

Cls(清除)方法

窗體名.Cls

Move方法

窗體名.MoveLeft[,Top[,Width[,Height]]]

其中,left、top、width、height都是單精度型數(shù)據(jù),分別用來(lái)表示窗體對(duì)于Screen的邊緣位置和窗體大小。Show方法

用于在屏幕上顯示一個(gè)窗體

Hide方法

用于窗體的隱藏

窗體名.Hide

六、常見(jiàn)事件Click事件

程序運(yùn)行時(shí),單擊窗體的某個(gè)位置,VisualBasic將調(diào)用窗體的Form_Click事件。如果是在窗體內(nèi)的控件上單擊的,那么只能調(diào)用控件上的Click事件。

DblClick事件

在窗體的某個(gè)位置雙擊,VisualBasic會(huì)調(diào)用Form_DblClick事件,而且第一次按下鼠標(biāo)的時(shí)候會(huì)先調(diào)用Click事件。

Load事件

程序運(yùn)行的時(shí)候,窗體被載入內(nèi)存將觸發(fā)Load事件。該事件一般用來(lái)對(duì)屬性和變量的初始化。

UnLoad事件

卸載窗體時(shí)候觸發(fā)的事件。

Resize事件

2.2窗體一、什么是窗體(Form)窗體是VB中的對(duì)象,具有自己的屬性、方法和事件。程序設(shè)計(jì)階段稱(chēng)為窗體(Form),程序運(yùn)行階段稱(chēng)為窗口(Window)。窗口包括:系統(tǒng)菜單(單擊左上角圖標(biāo))、最大化、最小化及關(guān)閉按鈕。畫(huà)布(Canvas)工作臺(tái)(Workbench)是應(yīng)用程序與外界交互的界面每個(gè)窗體對(duì)應(yīng)一個(gè)窗口。Demo窗體對(duì)象是VisualBasic應(yīng)用程序的基本構(gòu)造模塊,是運(yùn)行應(yīng)用程序時(shí),與用戶(hù)交互操作的實(shí)際窗口。窗體和控件有自己的屬性、事件和方法,可以控制窗體的外觀和行為。Demo(2_1)

屬性:指對(duì)象(窗體,控件)的大小、顏色、方位等一系列外觀或內(nèi)部構(gòu)造的特征。

方法:指對(duì)象(窗體,控件)所進(jìn)行的操作。

事件:指對(duì)象(窗體,控件)對(duì)外部條件的響應(yīng)。

設(shè)計(jì)窗體的第一步是設(shè)置它的屬性。這可以在設(shè)計(jì)時(shí)在“屬性”窗口中完成,或者運(yùn)行時(shí)由代碼來(lái)實(shí)現(xiàn)。注意(Attention)

設(shè)計(jì)時(shí),即在VisualBasic環(huán)境中創(chuàng)建應(yīng)用程序的任何時(shí)刻。此時(shí),可以操作窗體和控件,設(shè)置它們的屬性,對(duì)它們的事件進(jìn)行編程。

運(yùn)行時(shí)是實(shí)際運(yùn)行應(yīng)用程序,并與應(yīng)用程序進(jìn)行交互的時(shí)間。窗體的許多屬性會(huì)影響窗體的外觀。Caption屬性決定窗體標(biāo)題欄中顯示的文本。Icon屬性設(shè)置在窗體最小化時(shí)顯示的圖標(biāo)。MaxButton和MinButton屬性決定窗體是否能最大化或最小化。BorderStyle屬性,可以控制窗體如何調(diào)整大小。二、設(shè)置窗體屬性Height

和Width

屬性決定窗體的初始大?。籐eft

和Top

屬性根據(jù)屏幕的左上角確定窗體的位置。WindowState

屬性可以把窗體設(shè)成在啟動(dòng)時(shí)最大化、最小化或正常大小。Name

屬性設(shè)置窗體的名稱(chēng),在代碼中用這個(gè)名稱(chēng)引用該窗體。首次在工程中添加窗體時(shí),該窗體的名稱(chēng)被缺省為Form1;添加第二個(gè)窗體,其名稱(chēng)被缺省為Form2,依次類(lèi)推。最好給Name屬性設(shè)置一個(gè)有實(shí)際意義的名稱(chēng),如給一個(gè)條目窗體命名為“frmEntry”(匈牙利命名規(guī)則)。對(duì)象前綴確認(rèn)框(CheckBox)chk組合框(ComboBox)cbo命令鈕(CommandButton)cmd數(shù)據(jù)庫(kù)控件(DataControl)

dat目錄列表框(DirectoryListBox)dir驅(qū)動(dòng)器列表框(DriveListBox)drv文件列表框(FileListBox)

fil窗體(Form)

frm框架(Frame)fra水平滾動(dòng)HorizontalScrollBarhsb對(duì)象前綴圖形(Image)img標(biāo)簽(Label)lbl線(Line)

lin列表框(ListBox)

lst菜單(Menu)mnu單選按鈕(OptionButton)

opt圖形框(PictureBox)

pic幾何圖形(Shape)

shp文本框(TextBox)

txt垂直滾動(dòng)條VerticalScrollBarvsb控件命名推薦方法控件的name可命名為:對(duì)象前綴+自定義名,如:cmdExit三、窗體的屬性窗體的屬性決定了窗體的外觀(Appearance)和操作(Operation)。屬性設(shè)置方法:1、通過(guò)屬性窗口設(shè)置;2、事件執(zhí)行過(guò)程中通過(guò)代碼設(shè)置。設(shè)計(jì)階段所設(shè)置的屬性稱(chēng)為“只讀屬性”AutoRedraw屬性返回或設(shè)置從圖形方法到持久圖形的輸出。語(yǔ)法object.AutoRedraw[=Boolean]部分描述Object對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象。Boolean布爾表達(dá)式,指定如何重繪對(duì)象。AutoRedraw屬性語(yǔ)法包含下面部分:(缺省值)使對(duì)象的自動(dòng)重繪無(wú)效,且將圖形或文本只寫(xiě)到屏幕上。當(dāng)需要重畫(huà)該對(duì)象時(shí),VisualBasic會(huì)激活對(duì)象繪制事件。False設(shè)置值Boolean的設(shè)置值如下:Form對(duì)象或PictureBox控件的自動(dòng)重繪有效。圖形和文本輸出到屏幕,并存儲(chǔ)在內(nèi)存的圖象中。該對(duì)象不接受繪制事件,必要時(shí),用存儲(chǔ)在內(nèi)存中的圖象進(jìn)行重繪。TrueRefresh示例(Example)該窗體有一個(gè)名叫Picture1的PictureBox控件。改變紅體字,調(diào)整窗體大小時(shí),觀察圖形變化。Demo(2_2)PrivateSubForm_Load()Picture1.ScaleHeight=100'設(shè)置比例為100.Picture1.ScaleWidth=100Picture1.ForeColor=0'設(shè)置ForeColor.Picture1.FillColor=QBColor(9)'設(shè)置FillColor.Picture1.FillStyle=0'設(shè)置FillStyle.Picture1.Circle(50,50),30'畫(huà)一個(gè)圓.EndSubPrivateSubPicture1_Click()DimI'Declarevariable.

'Picture1.AutoRedraw=TruePicture1.ForeColor=RGB(Rnd*255,0,0)'選擇隨機(jī)顏色.ForI=5To95Step10'畫(huà)線.Picture1.Line(I,0)-(I,100)NextPicture1.Circle(50,50),30

'Picture1.AutoRedraw=False

EndSubBackColor、ForeColor屬性BackColor-返回或設(shè)置對(duì)象的背景顏色。ForeColor-設(shè)置對(duì)象里顯示圖片和文本的前景顏色。語(yǔ)法

object.BackColor[=color]object.ForeColor[=color]部分描述Object對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中一個(gè)對(duì)象。Color值或常數(shù),確定對(duì)象前景或背景的顏色。BackColor和ForeColor屬性語(yǔ)法包含下面部分:設(shè)置值VisualBasic用MicrosoftWindows運(yùn)行環(huán)境的紅-綠-藍(lán)(RGB)顏色方案。color的設(shè)置值如下:設(shè)置值描述使用調(diào)色板或在代碼中使用RGB或QBColor函數(shù)指定的顏色。標(biāo)準(zhǔn)RGB顏色由對(duì)象瀏覽器中的VisualBasic(VB)對(duì)象庫(kù)所列的系統(tǒng)顏色常數(shù)指定的顏色。Windows運(yùn)行環(huán)境替換使用用戶(hù)在控制面板設(shè)置值中的選擇。對(duì)所有的窗體和控件,在設(shè)計(jì)時(shí)的缺省設(shè)置值如下:BackColor-設(shè)置為由常數(shù)

vbWindowBackground定義的系統(tǒng)缺省顏色。ForeColor-設(shè)置為由常數(shù)

vbWindowText定義的系統(tǒng)缺省顏色。系統(tǒng)缺省顏色標(biāo)準(zhǔn)RGB顏色的有效取值范圍是0到16,777,215(&HFFFFFF)。該范圍內(nèi)數(shù)的高字節(jié)為0;較低的3個(gè)字節(jié),從最低字節(jié)到最高字節(jié)依次決定紅、綠和藍(lán)的量。紅、綠和藍(lán)的成分,分別由一個(gè)介于0與255(&HFF)之間的數(shù)來(lái)表示。如果最高字節(jié)不為0,VisualBasic將使用系統(tǒng)顏色??蓮膶傩源翱诟腂ackColor、ForColor屬性示例這個(gè)例子每秒鐘兩次隨機(jī)地重新設(shè)置窗體(Form)和PictureBox控件的前景顏色和背景顏色。要嘗試這個(gè)例子,請(qǐng)將代碼粘貼到包含PictureBox控件和Timer控件窗體的聲明部分,然后按F5鍵。BackColor、ForColor屬性示例PrivateSubForm_Load()Timer1.Interval=500EndSubPrivateSubTimer1_Timer()BackColor=QBColor(Rnd*15)Picture1.BackColor=QBColor(Rnd*15)Picture1.ForeColor=QBColor(Rnd*10)EndSub

Demo(2_3)BorderStyle屬性返回或設(shè)置對(duì)象的邊框樣式。對(duì)Form對(duì)象和Textbox控件在運(yùn)行時(shí)是只讀的。語(yǔ)法Demo(2_4)object.BorderStyle=[value]BorderStyle屬性語(yǔ)法有這些組成部分:部分描述Object對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中

的一個(gè)對(duì)象。Value值或常數(shù),用于決定邊框樣式。設(shè)置值Form對(duì)象的BorderStyle屬性設(shè)置值如下:常數(shù)設(shè)置值描述BSNone0無(wú)(沒(méi)有邊框或與邊框相關(guān)的元素)。固定單邊框??梢园刂撇藛慰?,標(biāo)題欄,“最大化”按鈕,和“最小化”按鈕。只有使用最大化和最小化按鈕才能改變大小。(缺省值)可調(diào)整的邊框??梢允褂迷O(shè)置值1列出的任何可選邊框元素重新改變尺寸。固定對(duì)話(huà)框??梢园刂撇藛慰蚝蜆?biāo)題欄,不能包含最大化和最小化按鈕,不能改變尺寸。固定工具窗口。不能改變尺寸。顯示關(guān)閉按鈕并用縮小的字體顯示標(biāo)題欄。窗體在Windows95的任務(wù)條中不顯示??勺兂叽绻ぞ叽翱凇?勺兇笮 o@示關(guān)閉按鈕并用縮小的字體顯示標(biāo)題欄。窗體在Windows95的任務(wù)條中不顯示。FixedSingle1Sizable2FixedDouble3FixedToolWindow4SizableToolWindow5Caption屬性窗體對(duì)象-顯示在Form或MDIForm對(duì)象標(biāo)題欄中的文本。當(dāng)窗體為最小化時(shí),該文本被顯示在窗體圖標(biāo)的下面。控件對(duì)象-確定顯示在控件中還是附在控件之后的文本。MenuLine對(duì)象-確定為Menu控件還是為MenuItems集合中的對(duì)象顯示的文本??赏ㄟ^(guò)窗口設(shè)置,也可以通過(guò)程序代碼設(shè)置。語(yǔ)法object.Caption[=string]Caption屬性的語(yǔ)法包含下面部分:部分描述Object

對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)

對(duì)象。如果object被省略,那么與活動(dòng)窗體模塊相聯(lián)系的窗體被認(rèn)為是object。String

字符串表達(dá)式,其值是被顯示為標(biāo)題的文本。當(dāng)創(chuàng)建一個(gè)新的對(duì)象時(shí),其缺省標(biāo)題為缺省的Name屬性設(shè)置。該缺省標(biāo)題包括對(duì)象名和一個(gè)整數(shù),如Command1或Form1。為了獲得一個(gè)描述更清楚的標(biāo)簽,應(yīng)對(duì)Caption屬性進(jìn)行設(shè)置。

Caption屬性示例用戶(hù)每次單擊按鈕將改變CommandButton控件的Caption屬性。要試用此例,先將下面的代碼粘貼到一個(gè)包含名為Command1的CommandButton窗體的聲明部分,然后按下F5鍵并單擊按鈕。Demo(2_5)PrivateSubCommand1_Click()

'檢查標(biāo)題,然后改變它。注釋?zhuān)ˋnnotation)

IfCommand1.Caption="Clicked"ThenCommand1.Caption="OK"ElseCommand1.Caption="Clicked"EndIfEndSubControlBox屬性返回或設(shè)置一個(gè)值,指示在運(yùn)行時(shí)控制菜單框是否在窗體中顯示。在運(yùn)行時(shí)為只讀。語(yǔ)法Object.ControlBoxobject所在處表示對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象。ControlBox屬性設(shè)置值如下:設(shè)置值描述True(缺省值)顯示控制菜單框。False刪除控制菜單框。為了顯示控制菜單框,還必須將窗體的BorderStyle屬性值設(shè)置為1(固定單邊框),2(可變尺寸)或3(固定對(duì)話(huà)框)。Enabled屬性返回或設(shè)置一個(gè)值,該值用來(lái)確定一個(gè)窗體或控件是否能夠?qū)τ脩?hù)產(chǎn)生的事件作出響應(yīng)。語(yǔ)法

Object.Enabled[=Boolean]Enabled屬性Enabled屬性的語(yǔ)法包含下面部分:部分描述Object對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)

對(duì)象。如果object被省略,則與活動(dòng)窗體模塊

相聯(lián)系的窗體被認(rèn)為是object。Boolean一個(gè)用來(lái)指定object是否能夠?qū)τ脩?hù)產(chǎn)生的事件作出反應(yīng)的布爾表達(dá)式。設(shè)置Boolean的設(shè)置為:設(shè)置描述True(缺?。┰试Sobject對(duì)事件作出反應(yīng)。False阻止object對(duì)事件作出反應(yīng)。Enabled屬性示例該例子用TextBox控件是否包含文本這一條件來(lái)控制CommandButton控件的有效性。要試用此例,先將下面的代碼粘貼到帶有CommandButton和TextBox控件的一個(gè)窗體的聲明部分,然后按下F5鍵并在文本框中隨意輸入一些內(nèi)容。Demo(2_6)

Enabled屬性示例PrivateSubForm_Load()

Text1.Text=""'清除文本框的內(nèi)容。

Command1.Caption="Save"'在按鈕上放置標(biāo)題。EndSubPrivateSubText1_Change()IfText1.Text=""Then'查看文本框是否為空。

Command1.Enabled=False'使按鈕無(wú)效。

Else

Command1.Enabled=True'使按鈕有效。

EndIfEndSub觀察文本框有、無(wú)內(nèi)容時(shí)的差異設(shè)置字體特征顯示文本(作為文本或標(biāo)題)的窗體、控件,以及支持Font屬性的Printer對(duì)象,它們將確定文本的可視特征,包括:字體名(字樣)

字體大小(用磅表示)

特別特征(黑體、斜體、下劃線或刪除線)設(shè)置字體屬性在設(shè)計(jì)時(shí),通過(guò)雙擊“屬性”窗口中的“字體”,可以任意設(shè)置字體屬性,然后在“字體”對(duì)話(huà)框中可進(jìn)行屬性的設(shè)定。在運(yùn)行時(shí),通過(guò)設(shè)置各個(gè)窗體和控件的Font對(duì)象的屬性,可以設(shè)定字體的特征。下表說(shuō)明了Font對(duì)象的一些屬性。Font示例改變文本框內(nèi)字體的大??;添加一個(gè)CommandButton和一個(gè)TextBox。

Demo(2_7)PrivateSubCommand1_Click()

Text1.Font.Name="Arial"

Text1.Font.Size=20

Text1.Font.Bold=True

Form1.Font.Size=50

Print"2341234"EndSub創(chuàng)建自己的字體類(lèi)型可以使用StdFont類(lèi)來(lái)創(chuàng)建自己的字體類(lèi)型??梢允褂靡韵抡Z(yǔ)法:

DimMyFontAsFont但是,不能使用:

DimMyFontAsNewFont相反,要?jiǎng)?chuàng)建自己的字體或圖片類(lèi)型,使用下面的代碼:DimMyFontAsNewStdFontWithMyFont.Bold=True.Name="Arial"EndWithSetText1.Font=MyFont上個(gè)例子可以改成如下代碼:PrivateSubCommand1_Click()DimMyFontAsNewStdFontWithMyFont.Bold=True.Name="Arial".Size=50EndWithSetText1.Font=MyFontSetForm1.Font=MyFontPrint"2341234"EndSubHeight、Width屬性返回或設(shè)置對(duì)象的維數(shù)、或DataGrid控件Columns對(duì)象的寬度。對(duì)于Printer和Screen對(duì)象,在設(shè)計(jì)時(shí)不可用。語(yǔ)法object.Height[=number]object.Width[=number]Height和Width屬性語(yǔ)法包含下面部分:Height、Width屬性示例這個(gè)例子在窗體被加載時(shí),將窗體的大小設(shè)置為屏幕大小的75%并使窗體居中顯示。要嘗試這個(gè)例子,請(qǐng)將代碼粘貼到窗體的聲明部分。然后按F5鍵并單擊窗體。PrivateSubForm_Click()Width=Screen.Width*0.75'設(shè)置窗體的寬度。

Height=Screen.Height*0.75'設(shè)置窗體的高度。

Left=(Screen.Width-Width)/2'在水平方向上居中顯示。

Top=(Screen.Height-Height)/2'在垂直方向上居中顯示。EndSubDemo(2_8)Visible屬性返回或設(shè)置一指示對(duì)象為可見(jiàn)或隱藏的值。語(yǔ)法

object.Visible[=Boolean]Visible屬性語(yǔ)法包含下面部分:Boolean的設(shè)置值為:注意(Attention)(1)要在啟動(dòng)時(shí)隱藏一個(gè)對(duì)象,在設(shè)計(jì)時(shí)將Visible屬性設(shè)置為False。在代碼中設(shè)置該屬性能夠在運(yùn)行時(shí)隱藏然后又重新顯示控件以響應(yīng)某特別事件。(2)對(duì)窗體用Show或Hide方法,和在代碼中將Visible屬性分別設(shè)置為T(mén)rue或False的效果是一樣的。PrivateSubForm_Load()DimI'聲明變量。

FileCab(0).BorderStyle=0'設(shè)置BorderStyle。

FileCab(1).BorderStyle=0'將圖標(biāo)加載到圖片框。

FileCab(1).Picture=LoadPicture(“C:\Apple.ico")FileCab(0).Picture=LoadPicture(“C:\Java.ico")FileCab(1).Visible=False'設(shè)置為不可視。

FileCab(0).Visible=True'設(shè)置為可視。EndSubPrivateSubFileCab_Click(IndexAsInteger)DimI'聲明變量。

ForI=0To1'切換兩張圖片的可視性。

FileCab(I).Visible=NotFileCab(I).VisibleNextIEndSub這個(gè)窗體包含兩個(gè)和圖標(biāo)大小相等的PictureBox控件。將兩PictureBox控件的Name屬性設(shè)置為FileCab來(lái)創(chuàng)建數(shù)組,Demo(2_9)窗體事件和方法窗體作為對(duì)象,能夠執(zhí)行方法并對(duì)事件作出響應(yīng)。無(wú)論是因?yàn)橛脩?hù)交互,還是通過(guò)代碼調(diào)整窗體的大小,都會(huì)觸發(fā)一個(gè)Resize事件。當(dāng)窗體尺寸變化時(shí),允許在窗體上進(jìn)行移動(dòng)控件或調(diào)整控件大小等操作。要使一個(gè)窗體可見(jiàn),調(diào)用Show方法。PrivateSubCommand1_Click()Form1.HideForm2.ShowEndSubDemo(2_10)窗體激活演示每當(dāng)一個(gè)窗體變成活動(dòng)窗體時(shí),就會(huì)產(chǎn)生一個(gè)Activate事件;當(dāng)另一個(gè)窗體或應(yīng)用程序被激活時(shí),就會(huì)產(chǎn)生Deactivate事件。這些事件對(duì)初始化或結(jié)束窗體行為十分方便。例如,在Activate事件中,可以編寫(xiě)代碼突出顯示一個(gè)特定文本框中的文本;在Deactivate事件中,可以把更改保存到一個(gè)文件或數(shù)據(jù)庫(kù)中。除窗體設(shè)計(jì)原理以外,還需考慮應(yīng)用程序的開(kāi)始與結(jié)束。有一些技巧用于決定應(yīng)用程序啟動(dòng)時(shí)的外觀。熟悉應(yīng)用程序卸載時(shí)進(jìn)行的一些處理也很重要。設(shè)置啟動(dòng)窗體在缺省情況下,應(yīng)用程序中的第一個(gè)窗體被指定為啟動(dòng)窗體。應(yīng)用程序開(kāi)始運(yùn)行時(shí),此窗體就被顯示出來(lái)(因而最先執(zhí)行的代碼是該窗體的Form_Initialize事件中的代碼)。如果想在應(yīng)用程序啟動(dòng)時(shí)顯示別的窗體,那么就得改變啟動(dòng)窗體。要改變啟動(dòng)窗體,請(qǐng)按照以下步驟執(zhí)行:(1)從“工程”菜單中,選取“工程屬性”。

(2)選取“一般”或“通用”。

(3)“啟動(dòng)對(duì)象”ListBox中,選取要作為新啟動(dòng)窗體的窗體。

(4)單擊“確定”。結(jié)束應(yīng)用程序當(dāng)所有窗體都已關(guān)閉并且沒(méi)有代碼正在執(zhí)行時(shí),事件驅(qū)動(dòng)的應(yīng)用程序就停止運(yùn)行。如果最后一個(gè)可見(jiàn)窗體關(guān)閉時(shí)仍有隱藏窗體存在,那么,應(yīng)用程序表現(xiàn)為已經(jīng)結(jié)束了(因?yàn)闆](méi)有可見(jiàn)的窗體),可實(shí)際上應(yīng)用程序仍在繼續(xù)運(yùn)行,直至所有隱藏窗體都關(guān)閉為止。避免出現(xiàn)關(guān)閉應(yīng)用程序時(shí)的這類(lèi)問(wèn)題,最好的辦法是確保所有的窗體都已卸載。如果應(yīng)用程序只有一個(gè)窗體,則Click事件過(guò)程可簡(jiǎn)單為:Demo(2_10)PrivateSubCommand1_Click()UnloadMeEndSub如果應(yīng)用程序使用多窗體,通過(guò)把代碼放入主窗體的Unload事件過(guò)程可以卸載這些窗體??梢允褂肍orms集合確保找到并關(guān)閉所有窗體。下列代碼就是使用窗體集合來(lái)卸載所有窗體的:PrivateSubCommand1_Click()DimMyFormAsFormForEachMyFormInForms

UnloadMyFormNextEndSub窗體事件Click事件此事件是在一個(gè)對(duì)象上按下然后釋放一個(gè)鼠標(biāo)按鈕時(shí)發(fā)生。它也會(huì)發(fā)生在一個(gè)控件的值改變時(shí)。對(duì)一個(gè)Form對(duì)象來(lái)說(shuō),該事件是在單擊一個(gè)空白區(qū)或一個(gè)無(wú)效控件時(shí)發(fā)生。語(yǔ)法PrivateSubForm_Click()PrivateSubobject_Click([indexAsInteger])Click事件的語(yǔ)法包括下列部分:部分描述Object一個(gè)對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象。Index一個(gè)整數(shù),用來(lái)唯一地標(biāo)識(shí)一個(gè)在控件數(shù)組中的控件。PrivateSubform_Click()Picture1.MovePicture1.Left+750,Picture1.Top-550EndSub窗體的左下角處有一個(gè)PictureBox控件。Demo(2_11)DblClick事件當(dāng)在一個(gè)對(duì)象上按下和釋放鼠標(biāo)按鈕并再次按下和釋放鼠標(biāo)按鈕時(shí),該事件發(fā)生。對(duì)于窗體而言,當(dāng)雙擊被禁用的控件或窗體的空白區(qū)域時(shí),DblClick事件發(fā)生。語(yǔ)法PrivateSubForm_DblClick()PrivateSubobject_DblClick(indexAsInteger)部分描述Object對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的一個(gè)對(duì)象。Index如果控件在控件數(shù)組內(nèi),則這個(gè)index值就用來(lái)標(biāo)識(shí)該控件。Load事件此事件是在一個(gè)窗體被裝載

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論