VB程序設計基礎 第6章 控件及控件數組_第1頁
VB程序設計基礎 第6章 控件及控件數組_第2頁
VB程序設計基礎 第6章 控件及控件數組_第3頁
VB程序設計基礎 第6章 控件及控件數組_第4頁
VB程序設計基礎 第6章 控件及控件數組_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第六章常用控件與窗體6.1選擇性控件6.2滾動條控件6.3時鐘控件6.4控件數組控件的分類:分為三類

1.標準控件:內部控件出現在工具箱上的控件,20個2.ActiveX控件:

ActiveX部件:是可以重復使用的編程代碼和數據 是由用ActiveX技術創(chuàng)建的一個或多個對象所組成

ActiveX部件文件:擴展名OCX,在Windows的SYSTEM目錄中3.可插入對象

Windows應用程序的對象 可插入對象可添加到工具箱上 同標準控件一樣使用 例如:MicrosoftExcel工作表6.1選擇性控件復選框(CheckBox)單選鈕(OptionButton)列表框(ListBox)組合框(ComboBox)一、單選鈕和復選框1、屬性:Caption屬性:文本標題。Alignment屬性: 0:控件鈕在左邊,標題顯示在右邊。

1:控件鈕在右邊,標題顯示在左邊。Value屬性:

單選鈕(邏輯型)

檢查框(數值型)

True:選定 0--Unchecked:未被選定(默認)

False:未選定(默認)

1--Checked:選定

2--Grayed:灰色,禁止選擇Style屬性:0--Standard:標準方式

1--Graphical:圖形方式2、事件:Click

單選和復選按鈕都能接收Click事件,當單擊時它們會自動改變狀態(tài)。二、框架(Frame):框架內控件的創(chuàng)建方法:方法1:單擊工具箱上的工具,然后用出現的“+”指針,在框架中適當位置拖拉出適當大小的控件。

不能使用雙擊工具箱上圖標的自動方式。方法2:將控件“剪切”到剪貼板,然后粘貼(Ctrl+V)到框架。Caption屬性:框架標題

Enabled屬性

False:標題呈灰色,不允許對框架內的對象進行操作。

Visible屬性

True:框架及其控件可見。

False:框架及其控件被隱含起來。

事件:Click、DblClick

一般不需要編寫框架的事件過程。三、列表框(ListBox):顯示項目列表,用戶可從中選擇一個或多個項目。如果有較多的選擇項,超出所畫的區(qū)域而不能一次全部顯示時,VB會自動加上滾動條。通常在一個列表框中只能選擇一項,但當列表框的MultiSelect屬性為1或2時允許多項選擇。列表框最主要的特點是只能從其中選擇,而不能直接修改其中的內容。1、屬性:(1)基本屬性:Name、Enabled、Visible、Index等(2)List屬性:字符型數組,存放列表框的項目,下標是從0開始的。(3)ListIndex:表示執(zhí)行時選中的列表項序號,如果未選定任何項時為-1。(4)ListCount:表示列表框中項目的數量,ListCount-1表示最后一項的序號。(5)Selected:是一個邏輯數組,其元素對應列表框中相應的項,表示對應的項在程序運行期間是否被選中。Selected(i)的值為True表示第i+1項被選中。(6)Sorted:決定列表框中項目在運行期間是否按字母順序排列顯示。如為True:按字母順序排列;如為False:按加入先后順序排列。(7)Text:表示列表項中被選定的文本內容。是默認的屬性。注意:List1.List(List1.ListIndex)=List1.Text。(8)MultiSelect:0-None:禁止多項選擇(默認)。1-Simple:簡單多項選擇。鼠標單擊或按空格鍵表示選定或取消選定一個選擇項。2-Extended:擴展多項選擇。按住Ctrl鍵同時用鼠標單擊或按空格鍵表示選定或取消選定一個選擇項;按住Shift鍵同時單擊,或按住Shift并且移動光標鍵,就可以從前一個選定的項擴展選擇到當前選擇項,即選定多個連續(xù)項。其中:List既可在設計狀態(tài)設置,也可在程序中設置或引用。

Sorted、MultiSelect

只能在設計狀態(tài)設置。

ListIndex、ListCount、Selected、Text只能在程序中設置或引用。2、方法列表框中的選擇項可以簡單地在設計狀態(tài)通過List屬性設置,也可通過相應方法來實現。(1)AddItem:添加一個項目 形式:對象.AddItemitem[,index]

其中:對象:可以是列表框或組合框

item:必須是字符串表達式,是要加入的項目

index:決定新增項目在列表框或組合框中的位置,如果省略,則添加在最后。對于第一個項目,index為0。(2)RemoveItem:刪除一個項目 形式:對象.RemoveItemindex其中:對象、index同上(3)Clear:清除所有項目 形式:對象.Clear

其中:對象可以是列表框、組合框或剪貼板。3、事件:Click、DblClick

一般不需要編寫Click事件過程 通常在單擊命令按鈕或發(fā)生DblClick事件時才讀取Text屬性四、組合框(ComboBox):組合框是組合了文本框和列表框的特性而形成的一種控件。組合框在列表框中列出可供用戶選擇的選項,另外還有一個正文框。當用戶選定某項后,該項內容自動裝入文本框中。當列表框中沒有所需選項時,除了下拉式列表框(Style為2)之外都允許在文本框中用鍵盤輸入,但輸入的內容不能自動添加到列表框中。組合框占用屏幕空間比列表框要小。組合框有三種不同的風格,由Style屬性值決定。1、屬性:組合框擁有列表框和文本框的大部分屬性。組合框也有SelLength、SelStart、SelText這三個文本框才有的屬性。組合框特有的屬性:Style(列表框特有的屬性:MultiSelect、Selected)類型Style輸入下拉式組合框0(默認)能簡單組合框1能下拉式列表框2不能2、方法:

同列表框3、事件:

Click,只有簡單組合框才有DblClick事件6.2滾動條

1、重要屬性

Max:最大值 -32,768~32,767 Min:最小值 -32,768~32,767

SmallChange

最小變動值,單擊箭頭時移動的增量值。

LargeChange

最大變動值,單擊空白處時移動的增量值。

Value滑塊所處位置所代表的值。水平滾動條垂直滾動條SmallChangeMinValueMaxSmallChangeLargeChange

LargeChangeSlider控件Slider須通過:“工程/部件”,選擇:MicrosoftWindowscommonControl6.0部件2、事件:

Scroll:拖動滑塊時會觸發(fā)Scroll事件。

Change:Value屬性改變時觸發(fā)Change事件。6.3時鐘控件(Timer)

時鐘控件能有規(guī)律地以一定的時間間隔激發(fā)計時器事件,周期性地自動執(zhí)行相應的程序代碼。它必須依附在窗體上,在程序運行時,它是不可見的。以Interval為時間間隔產生Timer事件。屬性:Interval屬性 單位:ms(0.001s),介于0~64767之間,所以最大時間間隔大約1min。如:0.5秒是500ms。

Interval=0:屏蔽計時器。

Enabled屬性:True:有效計時

False:停止時鐘工作事件:只有Timer事件6.4控件數組 本節(jié)介紹控件數組,控件數組為我們處理功能相近的控件提供了極大的方便。6.4.1控件數組的概念 在實際應用中,我們有時會用到一些類型相同且功能類似的控件。如果對每一個控件都單獨處理,就會多做一些麻煩而重復的工作。這時,我們可以用控件數組來簡化程序。 控件數組由一組相同類型的控件組成,這些控件共用一個控件名字,具有相似的屬性設置,共享同樣的事件過程??丶到M中各個控件相當于普通數組中的各個元素,同一控件數組中各個控件的Index屬性相當于普通數組中的下標。 比如,假設有一個包含3個按鈕的控件數組Command1,它的3個元素就是Command1(0),Command1(1),Command1(2)。6.4.2控件數組的建立 控件數組中每一個元素都是控件,它的定義方式與普通數組不同??梢酝ㄟ^以下兩種方法建立控件數組。 方法一:復制已有的控件并將其粘貼到窗體上。 方法二:將窗體上已有的類型相同的多個控件的Name屬性設置為同一值。6.4.3控件數組的應用舉例 建立了控件數組之后,控件數組中所有控件共享同一事件過程。例如,假定某個控件數組含有10個標簽,則不管單擊哪個標簽,系統(tǒng)都會調用同一個Click過程。由于每個標簽在程序中的作用不同,系統(tǒng)會將被單擊的標簽的Index屬性值傳遞給過程,由事件過程根據不同的Index值執(zhí)行不同的操作。

【例6.12】設計一個簡易計算器,能進行整數的加、減、乘、除運算。其運行界面如圖7-8所示。 界面設計: 一個標簽用于計算器輸出;數字按鈕控件數組Number;操作符控件數組Operator;一個“=”按鈕用于計算結果;一個“Cls”按鈕用于清屏。 程序如下:

'窗體級變量聲明

Dimop1AsByte'用來記錄前面輸入的操作符

Dimops1&,ops2&'兩個操作數

DimresAsBoolean'用來表示是否已算出結果

PrivateSubclear_Click()

dataout.Caption=""EndSub

PrivateSubForm_Load()

res=FalseEndSub

'按下數字鍵0~9的事件過程

PrivateSubnumber_Click(i1AsInteger)

IfNotresThen

dataout.Caption=dataout.Caption&i1Else

dataout.Caption=i1

res=FalseEndIfEndSub

'按下操作鍵+、-、×、/的事件過程

PrivateSuboperator_Click(i2AsInteger)

ops1=dataout.Captionop1=i2'記下對應的操作符

dataout.Caption=""EndSub

'按下=鍵的事件過程

PrivateSubresult_Click()

ops2=dataout.CaptionSelectCaseop1Case0

dataout.Caption=ops1+ops2Case1

dataout.Caption=ops1-ops2

Case2

dataout.Caption=ops1*ops2Case3

dataout.Caption=ops1/ops2EndSelect

res=True'已算出結果

EndSub6.5鼠標事件和鍵盤事件 鼠標對于Windows應用程序設計來說幾乎是必需的,尤其是在圖形圖像處理的程序設計中,顯得更為重要。而鼠標應用的基礎是鼠標事件。下面我們就來簡單介紹一下窗體鼠標事件及其應用。

6.5.1鼠標事件 除了單擊(Click)和雙擊(DblClick)外,基本的鼠標事件還有3個:MouseDown、

MouseUp和MouseMove。工具箱中的大多數控件都能響應這3個事件。MouseDown:鼠標的任一鍵被按下時觸發(fā)該事件。MouseUp:鼠標的任一鍵被釋放時觸發(fā)該事件。MouseMove:鼠標被移動時觸發(fā)該事件。以Form對象為例,它們的語法格式為:PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)【例6.12】顯示鼠標指針的當前位置。 程序如下:

PrivateSubForm_MouseMove(ButtonAsInteger,_ShiftAsInteger,XAsSingle,YAsSingle)

Text1.Text=XText2.Text=YEndSub

運行結果如圖6-6所示。6.5.2鍵盤事件

VB中的對象識別鍵盤事件,包括KeyPress、KeyUp和KeyDown事件。用戶按下并且釋放一個ANSI鍵時就會觸發(fā)KeyPress事件;用戶按下一個鍵時觸發(fā)KeyDown事件,釋放引發(fā)KeyUp事件。在引發(fā)鍵盤事件的同時,用戶所按的鍵盤碼作為實參傳遞給相應的事件過程,供程序判斷識別用戶的操作。

KeyPress只響應按下標準ASCII字符表中對應的鍵時的事件,如[Enter]QVFP、[Tab]鍵、[Backspace]鍵等以及標準鍵盤中的字母、標點、數字鍵等。而KeyDown和KeyUP則提供了最低級的鍵盤響應。 它們的格式如下:SubObject_KeyPress([IndexAsInteger,]KeyAsciiAsInteger)SubObject_KeyDown

溫馨提示

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

評論

0/150

提交評論