第二章:事件、屬性及數據類型
以後兩章可能會比較枯燥,但不可否認也很重要,所以為了學好VB,我們一定要打好基礎才行。
一、事件
通過上一章的例子,你可能對“面向對象的編程”已經有了一定了解,它是由事件驅動的,對於不同的對象,所能感應到的事件也會不同,譬如說當你把鼠標移進某一區域時就會觸發MouseMove事件,這很直觀,也容易理解,但也有些事件比較抽象,下面我來對一般的事件進行一下解釋。
窗體和圖象框類事件
Paint事件:當某一對象在屏幕中被移動,改變尺寸或清除後,程序會自動調用Paint事件。注意:當對象的AutoDraw屬性為True(-1)時,程序不會調用Paint事件。
Resize事件:當對象的大小改變時觸發Resize事件。
Load事件:僅適用於窗體對象,當窗體被裝載時運行。
Unload事件:僅適用於窗體對象,當窗體被卸載時運行。
2.當前光標(Focus)事件
GotFocus事件:當光標聚焦於該對象時發生事件。
LostFocus事件:當光標離開該對象時發生事件。
注意:Focus英文為“焦點”、“聚焦”之意,最直觀的例子是,比如有兩個窗體,互相有一部分遮蓋,當你點下面的窗體時,它就會全部顯示出來,這時它處在被激活的狀態,並且標題條變成藍色,這就是GotFocus事件,而相反,另外一個窗體被遮蓋,並且標題條變灰,稱為LostFocus事件。上面所說的“光標”並非指鼠標指針。
3.鼠標操作事件
Click事件:鼠標單擊對象。
DbClick事件:鼠標雙擊事件。
MouseDown、MouseUp屬性:按下/放開鼠標鍵事件。
MouseMove事件:鼠標移動事件。
DragDrop事件:拖放事件,相當於MouseDown、MouseMove和MouseUp的組合。
DragOver事件:鼠標在拖放過程中就會產生DragOver事件。
4.鍵盤操作屬性
KeyDown、KeyUp事件:按鍵的按下/放開事件。
KeyPress事件:按鍵事件。
5.改變控制項事件
Change事件:當對象的內容發生改變時,觸發Change事件。最典型的例子是文本框(TextBox)。
DropDown事件:下彈事件,僅用於組合框(ComboBox)對象。
PathChange事件:路徑改變事件,僅用於文件列表框(FileBox)對象。
6.其他事件
Timer事件:僅用於計時器,每隔一段時間被觸發一次。
二、屬性
每個對象都有它的屬性,並且“Name”屬性是共有的,有了“Name”屬性才可以在程序中進行調用。對於屬性,可以在窗體的布局操作中完成,也可以在程序運行中改變,這取決你的需要,但有些屬性是只讀的,它只能在控件布局時改變。我將在以後的實例中具體介紹各個屬性的作用。
三、數據類型
學過編程的人都知道大多數的計算機語言都規定了各自的數據類型,VB也不例外。其實,在一個最簡單的程序中數據類型是可以不作規定的,也就是說,變量可以使用各種類型,但是在一個復雜的程序裡,這樣做就很危險,因為很可能給同一個變量賦予了不同的類型,而導致程序出錯。所以,為了程序的嚴謹和便於查看,正確的定義數據類型是必要的。定義數據的另一個原因是,不同的數據占用不同的內存數量,譬如整型(Interger)數據占2字節,而長整型數據占4個字節,定義合適的數據類型,不管你相信不相信,它可以節省內存!
VB常用的數據類型有:整型(Integer,表示-32768至32767之間的整數)、長整型(Long,表示-2,147,483,648至2,147,483,647之間的整數)、實型(Single,表示-3.37E 38至3.37E 38之間的實數)、雙精度實型(Double,表示-1.67E 308至1.67E 308之間的實數),字符(String,每個字符占一字節,可以儲存0~65,535個字符),布爾(Boolean,只有兩個值True/-1,或False/0)。
數據類型的定義方法:
定義變量最簡單的方法是用“Dim”關鍵字,它的語法:
Dim【變量名】As【數據類型】
如:DimIndexAsInteger
也可以在一行中定義多個變量,如:
DimIndexAsInteger,DimNumberAsLong
把多個變量定義成同一類型可以寫成:
DimIndex,NumberAsInteger
更可以在定義時進行初賦值:
DimIndex=3
有時為了簡便,也以符號進行簡單的定義,作用是和上面一樣的。整型可以用“”代替,長整型可以用“&”代替,實型可以用“!”,雙精度實型可以用“#”定義,如剛才的第一個例子可以寫成:
DimIndex等價於DimIndexAsInteger
對於常量的定義用Const定義,如:ConstCOLOR=255。
為了在程序中便於查閱,我們對變量和常量的寫法進行規定,變量一般用小寫方式,常量則全部大寫。
注意:使用常量的好處,對於程序中經常出現的數值,應設常量等於它,這樣一是書寫方便,其二,如果要改變該數值,只需改變定義常量的語句值,而不需改變每個語句,提高了效率。
數組的定義類似於變量定義,所不同的是數組需要指定數組中的元素個數,例如:
DimIntegerArray(99)AsInteger
這個數組中包含100個元素,腳標從0到99。
也可以指定腳標的起始值,例如:
DimIntegerArray(2to10)AsInteger
這個數組含有九個元素,腳標從2到10。
還可以定義多維數組:
DimThreeD(4,2to5,3to6)AsInteger
上例定義了一個3d/33.shtml'target='_blank'class='article'>三維數組(4×4×4)。
記錄的定義
記錄定義是把控制權交給用戶的方法,它讓用戶可以定義自己的數據類型,它使用關鍵字“Type”,方法是:
Type【數據類型標識符】
<域名>As<數據類型>
<域名>As<數據類型>
<域名>As<數據類型>
EndType
例如,定義一個地址數據:
TypeAddress
StreetAsString
ZipCodeAsString
PhoneAsString
EndType
這個地址數據裡包括三個屬性,街區、郵政編碼和電話,可以把某數據定義成此類型:
DimMyHomeAsAddress
要調用或改變“MyHome”的值時,類似於對對象的屬性的操作:
變量名.域名=“……”
為了簡化書寫重復的部分,可以用關鍵字“With”:
WithMyHome
.Street=”阜成路”
.ZipCode=”100037”
.Phone=”12345678”
EndWith