• 沒有找到結果。

陳致中老師VB6電子書

N/A
N/A
Protected

Academic year: 2021

Share "陳致中老師VB6電子書"

Copied!
315
0
0

加載中.... (立即查看全文)

全文

(1)

PDF檔僅限學校教師搭配紙本教材用於

課堂教學,並未授權其他用途!!

(2)

祝您教學愉快!! ^0^

< 課本正文由下頁開始 >

(3)

i

早期 BASIC(培基)語言是一種在計算機發展史上應用最為廣泛的程式語

言,相信現在的每一位程式設計師都曾經歷過。而 Visual Basic 則以原來的

BASIC 語言為基礎,做了更進一步的發展,專業人員可以使用 Visual Basic

製作出任何其它 Windows 程式語言所能做到的功能,而初學者則只要掌握幾

個基本要領,就可以建立實用的應用程式。

Visual Basic 發展迄今已到 6.0 版本,之後也一直未再有更新的版本問

世,因此,有人預言 Visual Basic 6.0 版本是否將被淘汰,如果現在學 Visual

Basic 6.0 豈不就白學了,甚至以後跟不上時代。但筆者卻認為 BASIC 的英文

涵義原為『基本;基礎』,意思就是想踏入程式設計的這個領域,就必須先

從 BASIC(基礎)開始學起,將來即使再學其他程式語言都將比較容易進入狀

況。

雖然現在坊間早已有許多關於 Visual Basic 的書籍,但對於想自學的讀

者們,卻經常遭遇很大的瓶頸,每次上課都感覺程式撰寫像在『打字練習』,

甚至按照書本輸入程式碼都無法成功,原因歸咎於可能是自己不小心打錯或

是某個步驟操作錯誤,原本那顆好奇的心,從此就被打入冷宮,甚至害怕學

習任何的程式語言。

筆者認為程式設計最好玩的地方就是『自由創作』,本書的實用範例都

是自己會經常接觸到的東西,或許您可以從網路上找到相關執行檔,但永遠

比不上自己 DIY 設計的親切、實用。另外,本書所附的光碟內容,裡面包括

筆者精心錄製的『多媒體教材』,讓您可以重複聆聽各單元實際的電腦操作

過程與老師講解,相信可以提供讀者相當的幫助。您可以選擇按下『空白鍵』

來暫停或是繼續播放,或是按下『Page Up/Dn』按鍵,回到前一秒或後一秒

的操作畫面。

如果您是程式設計的新手,則本書正好可以帶領您跨越學習障礙,當您

瞭解這些基本內容之後,相信您就可以輕易地使用 Visual Basic 來撰寫各種

應用程式了。

最後要特別感謝台科大圖書公司所有同仁的協助與鼓勵,使本書得以順

利出版。本書與多媒體教學光碟,雖然已經多次校對,但仍恐怕會有疏漏之

處,尚祈各位讀者不吝指教,謝謝!

乾龍工作室 謹識

(4)
(5)

iii

目 錄

1

章 Visual Basic 簡介

1-1 認識 Visual Basic

1-2 1-1.1 Visual Basic 簡介 1-2 1-1.2 Visual Basic 基本觀念 1-3 1-1.3 Visual Basic 版本摘要 1-5

1-2 Visual Basic 的工作環境

1-7 1-2.1 進入與離開 Visual Basic 6.0 1-7 1-2.2 Visual Basic 工作視窗介紹 1-10

2

章 基本控制物件的介紹

2-1 基本控制物件的特徵

2-2 2-1.1 控制物件『事件』的介紹 2-2 2-1.2 控制物件『屬性』的介紹 2-5 2-1.3 控制物件『方法』的介紹 2-8

2-2 基本控制物件的介紹

2-9 2-2.1 Form(表單)控制物件 2-9 2-2.2 Label(標籤)控制物件 2-16 2-2.3 CommandButton(命令鈕)控制物件 2-18 2-2.4 TextBox(文字方塊)控制物件 2-21 2-2.5 Frame(框架)控制物件 2-24 2-2.6 CheckBox(核取方塊)控制物件 2-25 2-2.7 OptionButton(選項按鈕)控制物件 2-27 2-2.8 ListBox(清單方塊)控制物件 2-28 2-2.9 ComboBox(組合下拉式方塊)控制物件 2-32 2-2.10 HscrollBar(水平捲軸)控制物件 VscrollBar(垂直捲軸)控制物件 2-34

(6)

iv

2-2.12 PictureBox(圖片方塊)控制物件 2-38 2-2.13 Image(影像)控制物件 2-40 2-2.14 DriverListBox(磁碟機清單方塊)物件 2-41 2-2.15 DirListBox(目錄清單方塊)控制物件 2-43 2-2.16 FileListBox(檔案清單方塊)控制物件 2-44 2-2.17 Shape(形狀)控制物件 2-46 2-2.18 Line(線條)控制物件 2-49 2-2.19 Data(資料)控制物件 2-50 2-2.20 OLE(物件連結和嵌入)控制物件 2-53

3

章 進階功能使用篇

3-1 功能表編輯器

3-2 3-1.1 下拉式功能表的製作 3-2 3-1.2 快顯功能表的製作 3-6

3-2 狀態列(StatusBar)的設計

3-8

3-3 頁籤(TabStrip)的設計

3-12

3-4 關於對話方塊

3-15

3-5 通用型對話方塊

3-17 3-5.1 『開啟舊檔』對話方塊 3-18 3-5.2 『儲存檔案』對話方塊 3-20 3-5.3 『色彩』對話方塊 3-21 3-5.4 『字型』對話方塊 3-22 3-5.5 『列印』對話方塊 3-24

3-6 光碟自動執行的製作

3-25

3-7 Visual Basic 與 Word 的整合

3-27

3-8 Visual Basic 與 Excel 的整合

3-29

(7)

v

4-1 Visual Basic 程式語言基本組成要素

4-2

4-2 Visual Basic 資料型態

4-4

4-3 Visual Basic 常數與變數

4-6

4-4 Visual Basic 陣列介紹

4-10

4-5 Visual Basic 運算子介紹

4-12

4-6 選擇判斷性結構語法介紹

4-14 4-6.1

If 指令介紹

4-14 4-6.2

Select Case 指令介紹

4-17 4-6.3

Goto 指令介紹

4-18

4-7 迴圈結構語法介紹

4-20 4-7.1

For - Next 迴圈指令介紹

4-20 4-7.2

While - Wend 迴圈指令介紹

4-23 4-7.3

Do - Loop 迴圈指令介紹

4-24

5

章 進階程式語言介紹

5-1 副程式與函數的介紹

5-2 5-1.1 副程式(SubProgram)的介紹 5-2 5-1.2 函數(Function)的介紹 5-4 5-1.3 模組(Module)的介紹 5-6

5-2 資料檔案與資料庫的介紹

5-8 5-2.1 資料檔案(Data File)的介紹 5-8 5-2.2 資料庫(DataBase)的介紹 5-13 5-2.2A 使用 Adodc 控制物件 5-15 5-2.2B 使用 Adodc 控制物件(進階版) 5-20 5-2.2C 使用 ADO Library 引用項目 5-23

(8)

vi

6-1 Show 圖程式

6-2

6-2 自製軟體安裝選單程式

6-6

6-3 MP3 播放程式

6-12

6-4 自動座位程式

6-18

6-5 英文單字練習

6-23

附錄

A

常用內建函數的介紹

附錄

B

北市 92 年度網路競賽試題(程式設計組 )

附錄 C 電腦軟體設計丙級術科試題

附錄

D

PhotoImpact 8 操作簡介

D-1 PhotoImpact 8 基本介紹

D-2

D-2 PhotoImpact 8 快速鍵介紹

D-4

D-3 利用 PhotoImpact 8 製作背景圖片

D-9

D-4 利用 PhotoImapct 8 製作按鈕圖片

D-12

D-5 利用 PhotoImpact 8 製作按鈕列圖片

D-14

D-6 利用 PhotoImpact 8 製作合成圖片

D-16

(9)

Visual Basic 簡介

1-1 認識 Visual Basic

1-1.1 Visual Basic 簡介

1-1.2 Visual Basic 基本觀念

1-1.3 Visual Basic 版本摘要

1-2 Visual Basic 的工作環境

1-2.1 進入與離開 Visual Basic 6.0

1-2.2 Visual Basic 工作視窗介紹

(10)

1

1-1 認識 Visual Basic

1-1.1 Visual Basic 簡介

歡迎使用 Microsoft Visual Basic,它是開發 Microsoft Windows

R

應用程

式的最快方法,不論是對 Microsoft Windows 應用程式的專業開發者或初學者

來說,Visual Basic 都是一套不可多得的快速開發應用程式。當然要想成為程

式設計者,要學的東西非常多,但只要您學會了 Visual Basic 的基礎知識,

就可將創造力盡情發揮。

何謂 Visual Basic?Visual 指的是開發圖形使用者介面(Graphic User

Interface)的方法,您不需撰寫大量程式碼來描述介面元件的外觀和配置,而

只要把預先建立的物件添加到螢幕上的某一點即可,如果您曾經使用過如小畫

家之類的繪圖程式,那麼應該很容易接受這觀念。

Basic 指的是 BASIC 語言,這是一種在計算機發展史上應用最為廣泛的

程式語言。Visual Basic 則以原來的 BASIC 語言為基礎,做了更進一步的發

展,至今包含了數百個陳述式、函數及關鍵字,其中有很多都和 Windows GUI

有直接關係。專業人員可以使用 Visual Basic 製作出任何其它 Windows 程式

語言所能做到的功能,而初學者則只要掌握幾個基本要領,就可以建立實用的

應用程式了。

Visual Basic 程式語言不僅可以用於 Visual Basic 程式撰寫系統,另外還

包含 Microsoft Excel、Microsoft Access 及許多其它的 Windows 應用程式中

的 Visual Basic Applications(VBA),也使用了與 Visual Basic 同樣的語言。

Visual Basic Scripting Edition(VBScript)是一廣泛使用的 Scripting 語言,而

它也是 Visual Basic 語言的子集合,所以學會 Visual Basic 之後,您還可以

應用到其它不同的領域中哦!

從開發個人或群組使用的小工具,到大型企業應用系統,甚至透過

Internet 的分散式應用程式(Distributed Applications)

,使用 Visual Basic 都可

讓您感覺遊刃有餘。

(11)

1 1

1-1.2 Visual Basic 基本觀念

要瞭解應用程式的開發過程,您最好能先瞭解當初 Visual Basic 的一些設

計理念,因為 Visual Basic 是屬於 Windows 介面的程式開發語言,所以必然

在某方面會類似於 Windows 介面環境。如果您並不熟悉 Windows 的程式撰

寫,那麼您就需要先明白在 Windows 環境下撰寫程式,和在其它環境下會有

那些差異。

Windows 如何工作:關於視窗、事件和訊息

若要完整地探討 Windows 的內部運作,可能需要寫上一整本書,然而實

際上,您並不需要深入瞭解所有的細節。簡單地說,Windows 的工作原理,

不外乎就是三個基本的觀念:視窗、事件和訊息。

您不妨將『視窗』看成是一個具有範圍性的矩形區域,可能您曾看過幾種

不同類型的視窗,例如:Windows XP 的『檔案總管』視窗、文書處理程式中

的文件視窗、或是可提醒您有約會的對話方塊等。除了這些最常見的例子外,

實際上還有許多其它類型的視窗,例如:指令按鈕就是一個視窗,而圖示、文

字方塊、選項按鈕和功能表列也都是視窗。

Microsoft Windows 作業系統會將每個視窗都指定一個唯一的識別碼(視

窗物件代碼)

,來管理所有的視窗,且作業系統會持續地監視每個視窗的事件

或動作。

『事件』可能是因為您的動作,像是按一下滑鼠按鍵而引發;當然,

也可以透過程式的控制,或甚至是另一個視窗的動作而產生。

每當有事件發生,該視窗就會傳送訊息到作業系統,而作業系統除了處理

此訊息外,還會將這個訊息發佈給其它的視窗,然後,每個視窗再依據自已被

賦予的作用,來處理接收的訊息並採取適當的動作(例如,當視窗脫離了其它

視窗的覆蓋時,需回復顯示自己的視窗)

您可以想像,要處理這一切視窗、事件和訊息可能的組合情況,將是多麼

費神的工作,但幸運地,Visual Basic 可以自動地為您處理掉許多的工作,讓

您免除對所有低階(Low-Level)訊息的處理,並會將剩下的工作規劃為事件

(12)

1

程序,以方便您完成程式開發的工作,這樣您便可以迅速地建立功能強大的應

用程式,而毋需深究那些旁枝末節了。

瞭解事件驅動的模式

在傳統或程序化(procedural)的應用程式中,應用程式只控制了程式的

執行部分和所產生的結果,從第一行程式碼開始執行,隨著預設的路徑來執行

應用程式,並在需要時去呼叫程序。

而在事件驅動應用程式中,程式碼並不依循原先決定的路徑,而是執行不

同的程式碼部分,以回應事件的發生。事件的引發有可能是因為使用者的動

作,也可能是來自作業系統或其它應用程式、甚至來自應用程式本身的訊息。

這些相繼的事件決定了程式碼最後執行的結果,因此,應用程式每次執行時的

程式碼路徑都是不一樣的。

正因為您無法預測這些相繼發生的事件,因此當程式碼執行時,您必須先

對各種可能的狀態做相對的假設,當您做出這些假設(例如,在執行一個處理

輸入欄位的程序之前,該欄位必須先含有一個預設值),並確定這些假設自始

至終都正確無誤(例如,除非欄位已含有一個值,否則應暫止啟動程序的指令

按鈕)

,才能為您的應用程式建立穩固的架構。

程式碼也可以在執行階段引發事件,例如,您可以用程式來改變文字方塊

中的內容,並引發文字方塊的 Change 事件。如果您原本是假設這個事件只

能由使用者來引發,那麼您可能會看到意料之外的結果,正因為如此,所以設

計應用程式時,須先瞭解整個事件驅動的模式並牢記在心,是非常重要的。

互動式開發

傳統的程式開發過程約可分為三個步驟:程式撰寫、編譯及測試。然而,

不同於傳統的程式語言,Visual Basic 是使用互動的處理手法來開發應用程

式,也使得這三個步驟之間不再有明顯的區別。

在多數的程式語言裡,如果您寫的程式碼發生錯誤,必須等到開始編譯

時,透過編譯器來檢測錯誤,這時再找出錯誤的地方來做修正。之後還得重新

(13)

1 1

再編譯一次,且您必須不斷的重複像這樣除錯和偵錯的動作,直到錯誤的情況

不再發生,程式設計的工作才算完成。而 Visual Basic 會在您輸入程式碼時便

進行解譯,即時偵錯並反白顯示一些語法或拼字上的錯誤,就像有位專家在您

身邊,看著您撰寫程式碼一樣。

除了即時偵錯的功能外,Visual Basic 還可在您輸入程式碼時,部份地編

譯您的程式。因此,當您準備好要執行、測試程式時,只需要花費極短的時間

就可以完成編譯。如果編譯器發現了錯誤,還會在程式碼中反白顯示錯誤處,

此時您只要修正這些錯誤後即可繼續編譯的工作,並不需要從頭開始。

1-1.3 Visual Basic 版本摘要

Visual Basic 有三種不同的版本,可滿足不同的開發需要。

1. 普及版:可使程式開發人員輕鬆開發 Windows 和 Windows NT

R

的應

用程式。此版本包括所有的一般控制項、以及方格、分頁和資料連結控

制項。普及版提供的文件包括 Learn VB Now CD 以及包括全部線上文件

的 Microsoft Developer Network(MSDN

TM

)Library CD。

2. 專業版:提供了一整套功能完備的開發工具。這個版本除包括普及版的

所有功能,與一些 ActiveX 控制項,另外還加入了 Internet Information

伺服端應用程式設計師、Visual 資料庫工具集成以及資料環境、Active

資料物件和動態 HTML 網頁設計師。專業版提供的文件有《Visual

Studio 專業版功能》以及包括全部線上文件的 Microsoft Developer

Network CD。

3. 企業版:可讓程式人員開發出功能強大的分散式應用程式。這個版本包

括專業版的所有功能,還有 Back Office 工具,如 SQL Server、Microsoft

Transaction Server、Internet Information Server 以及 Visual SourceSafe、SNA

Server 等等。

(14)

1

MSDN 是什麼?

MSDN(MicroSoft Developer Network)是使用 Microsoft 開發工具 或是以 Windows 或 Internet 為開發平台的程式開發人員的基本參 考。 MSDN Library 包含了超過 1.1 GB 的技術性程式撰寫資訊。有關 MSDN 的詳 細內容,請參閱 MSDN 網站,網址是:http://www.microsoft.com/msdn/ join/subscriptions.htm。 Visual Basic 6.0 需另外安裝方能使用(共有兩片光碟),欲查詢指 令或控制物件屬性相關說明,只要將游標移到該指令或屬性名稱的中 間,再按『 』即可。 利用左邊窗格包含[內容]、[索引]、[搜尋]、及[我的最愛]頁籤。按 一下[內容]、[索引]、或[我的最愛]清單中的主題,即可瀏覽 Library 中的各種資訊。[搜尋]頁籤可用於尋找所有出現在任何主題中的某單 字或短句。請看下圖說明:

(15)

1 1

1-2 Visual Basic 的工作環境

Visual Basic 是採用『視覺化』圖形的操作介面,使用者可以直接點選按

鈕或圖示(Icon)的方式,直接來進行程式的撰寫與視窗外觀的設計。

1-2.1 進入與離開 Visual Basic 6.0

首先我們先開機實際操作如何進入與離開 Visual Basic 6.0。

按『開始 → 程式集 → Microsoft Visual Basic 6.0 → Microsoft

(16)

1

在『標準執行檔』上,利用滑鼠連續左點兩下,直接開啟空白專案。

已進入 Visual Basic 工作視窗,自動產生 一個專案檔與表單

(17)

1 1

按『檔案 → 結束』可以關閉該程式。

當離開 Visual Basic 的同時,若尚未儲存專案檔(.vbp)或各個表單 檔(.frm),Visual Basic 會主動依序詢問是否要進行儲存的動作。 為何存檔時要分別存成 .vbp 與 .frm 兩種呢?這是因為我們在某一個 專案裡使用到的表單、程式碼均可單獨存檔後,再套用到其他專案中, 例如 project1 中的 form1.frm 可以在 project2 中再使用一次,這是 在程式開發中,很好的一種重覆使用(reuse)的觀念與做法。 強烈建議讀者養成將一個專案所有相關內容,統一放在同一層的資料 夾之內,以避免重新開啟舊檔時找不到相關檔案的連結。 欲建立執行檔可利用『檔案 → 製成 project1.exe』,屆時再修改檔 案名稱即可! 按下關閉鈕 亦可直接結 束該程式 最近曾經開啟使 用的專案名稱 可直接製作成 EXE 執行檔!

(18)

1

1-2.2 Visual Basic 工作視窗介紹

工具箱 專 案 總 管 屬 性 視 窗 表 單 配 置 視 窗 主視窗 表單視窗 一般工具列

由上圖我們可以看到 Visual Basic 工作視窗包含主視窗、表單視窗、專案

總管視窗、屬性視窗、表單配置視窗以及工具箱,分別詳細說明如下:

1. 主視窗:用來顯示專案名稱以及工作模式。例如 『Project1』是專案名

稱,工作模式包括『設計』模式,也就是程式設尚未開始執行,正在撰

寫程式時的狀態,此時可以進行程式內容的撰寫與修改。

『執行』模式是

指當程式設計師命令程式開始執行時,以便進入執行模式。而『中斷』

模式是指程式在執行當中可能會發生一些錯誤,或需要停下來檢視某些

數值、狀態,此時程式設計師可以要求程式暫停執行,而且保留程式執

行中斷時發生的一切數據,以便加以檢視與協助程式的除錯。

2. 表單視窗:可讓您在應用程式中建立視窗、對話方塊及控制項。

3. 專案總管視窗:用來管理本專案所有表單與程式,並可利用『檢視程式碼』

與『檢視物件』按鈕切換,以方便使用者撰寫程式,若無法顯示該視窗,

則按一般工具列的『檢視 → 專案總管』。

(19)

1 1

4. 屬性視窗:用來瀏覽或設定每個控制物件自己的屬性(例如名稱、顏色、

大小、樣式 … )

,不同的物件有不同的屬性,若無法顯示該視窗,則按

一般工具列的『檢視 → 屬性視窗』

,控制物件屬性的設定請參閱第二章

說明。

5. 表單配置視窗:讓您預覽並決定表單出現在應用程式中的位置。在快速

鍵功能表上使用『解析度指引』指令,還可以不同的解析度進行預覽。

若無法顯示該視窗,則按一般工具列的『檢視 → 表單配置視窗』

『檢視程式碼』 或按『 』 『檢視物件』或按『 + 』 『專案名稱』 『表單名稱』

(20)

1

6. 工具箱:可顯示一般的 Visual Basic 控制項及其他的 ActiveX 控制項,

並且可插入您新增到專案中的物件(一般工具箱的所有控制項物件請直

接參考下一章的詳細說明)

請直接執行光碟資料夾的

檔案,以觀看本章節實際內容操作與說明。

按住滑鼠左鍵, 直接拖曳到達定 位,再放開滑鼠

(21)

基本控制物件的介紹

2-1 基本控制物件的特徵

2-1.1 控制物件『事件』的介紹

2-1.2 控制物件『屬性』的介紹

2-1.3 控制物件『方法』的介紹

2-2 基本控制物件的介紹

(22)

2

2-1 基本控制物件的特徵

2-1.1 控制物件『事件』的介紹

事件(Event)代表可被控制物件識別的動作,例如,在表單上按一下滑

鼠左鍵,表單會辨識到使用者的動作,而產生一個稱為 Click(此事件是發生

在按下一個物件,並接著放開滑鼠鍵時)的事件,不同控制物件的事件發生的

原因並不完全相同,我們將在後面作更詳細的介紹。其它較常使用到的事件還

包括:

DbClick 事件:發生在一個物件上『按和放』滑鼠按鈕連續兩次時。

MouseDown 事件:發生在使用者『按下』滑鼠鍵時。

MouseUp 事件:發生在使用者『釋放』滑鼠鍵時。

MouseMove 事件:發生在『移動』滑鼠時。

KeyDown 事件:發生在使用者『按下』鍵盤上一個任意按鍵時。

事件若是按其產生的來源方式,則可概分為以下三類:

使用者事件:使用者操控滑鼠或鍵盤所引起的事件;例如,Click(按

下滑鼠左鍵)所引起的事件。

系統事件:作業系統所引起的事件;例如,Timer(定時器)所引起的

事件。

程式事件:程式間接引發的事件;例如,程式碼載入表單時,所引發

之 Load(載入)事件。

在 Visual Basic 中,程式碼就是以『一個事件對應一個程序』的方式來設

計,因此,當某一事件發生時,事件程序中的程式碼就會被驅動起來執行,所

以我們稱 Visual Basic 具有『事件驅動』(Event-Driven)的特性。

(23)

2

例如:Command1_Click( )代表 Command1 物件的 Click 事件程序,

Command1 為控制物件的名稱,Click 是事件的名稱,而底線符號(“_”)則是

用來建立控制物件與事件的『隸屬關係』,雙括號表示此為程序(即副程式

Subroutine,請參考本書 5-1.1 介紹)。

自動產生 事件程序 事件/程序 方塊 物件名稱 物件方塊 事件名稱

在表單設計階段,利用『檢視物件

』按鈕或是按下

鈕,皆會自動切換到物件視窗。當我們利用滑鼠雙按任何一個控制物件時,就

會自動進入 Visual Basic 程式碼視窗(如上圖所示)

,同時會自動產生對應的事

件程序名稱,因此,副程式名稱的宣告(Command1_Click( ))與結束副程式

敘述(End Sub)都不需自行輸入,我們只要在中間部分直接輸入程式碼即可。

其中『物件方塊』用來顯示此表單中的所有物件,而『程序/事件方塊』

可以列出該控制物件所有 Visual Basic 的事件,當您選擇了一個事件,則與事

件名稱相關的事件程序,就會自動顯示在『程式碼』視窗中。所有程序會出現

在一個單一捲軸的清單中,它們是依名稱字母來做排列,您可以從『程式碼』

視窗上端的下拉式清單中選取一個事件程序,此時指標會自動移到所選事件程

序的第一行程式碼上面。

但在不同的控制物件上雙按滑鼠左鍵,所啟動的事件將會有所不同,因為

Visual Basic 會自動以控制物件最常使用的事件,作為進入程式視窗的預設事

件,目的是要省去程式設計者自行點選事件的麻煩,但若不是預設值,則可利

用『事件/程序方塊』自行選擇清單方塊中右邊箭頭。

(24)

2

在大多數的事件程序的雙括號內是完全空白(預設)

,但有些事件程序的

雙括號內卻包含許多內容,該內容即所謂『參數』

,例如,在 KeyDown 事件

中,到底使用者是按下鍵盤哪個按鍵,我們可以透過 KeyCode 參數傳遞回來,

而 Shift 參數可以偵測(傳遞)是否『同時』按下

(Shift 傳回“1”)、

(Shift 傳回“2”)、

(Shift 傳回“4”)等按鍵的訊息,如下圖所示:

一般程序

當按下『物件方塊』清單方塊中的右邊箭頭,可顯示此表單中的所有 物件,我們發現除了 Form 控制物件外,最上面還有一個『(一般)』的 選項,當我們選取『(一般)』的選項時,『事件/程序方塊』會自動出 現『(宣告)』選項。 一般程序的程式碼,通常是作為宣告常數、變數以及陣列,或是撰寫 副程式與自訂函數等,一般程序的程式碼都是放置於程式碼的最前面,以 便讓該變數運用在整個專案之中,我們將在後面第四章節詳細介紹使用時 機與方式。

請參閱光碟 EX2-1.1 資料夾內容,練習控制物件的事件使用時機與說明。

(25)

2

2-1.2 控制物件『屬性』的介紹

對於我們日常生活中的物件而言,屬性是指物件本身所具有的各種性質。

例如,電視機有不同廠牌、型號、顏色以及大小之分,這些屬於電視機的不同

特質,就是電視機的屬性。在 Visual Basic 中,屬性是指控制物件所具有之性

質或特性,它是可以任意被改變的。

屬性設定的方法

設定或改變控制物件屬性的方法有下列兩種方法:

第一種方法是選定控制物件後,在屬性視窗中直接更改該屬性的值;在屬

性視窗區域中,不同的屬性有不同的設定方式:

1. 自行輸入:表示這種屬性必須以自行輸入的方式來設定屬性,或在屬性

欄直接按滑鼠左鍵兩下,亦可直接輸入設定。

2. 直接選取:表示 Visual Basic 提供屬性選項可供我們直接選取,或在屬性

欄直接按滑鼠左鍵兩下,將輪流顯示所有選項的設定。

3. 交談窗設定:表示這種屬性之設定必須按下『交談窗

』按鈕,或在屬

性欄直接按滑鼠左鍵兩下,以開啟更細部的交談視窗來設定各項子屬

性,例如,Font(字型)屬性還包括字型、字型樣式、大小以及底線等

多項的子屬性設定。

(26)

2

第二種方法則是利用程式敘述的撰寫來設定控制物件的屬性,其設定的語

法如下:

控制物件名稱

.控制物件的屬性 = 屬性值

小數點符號(“.”)的中文涵義可視為 『的』;而等於符號(“=”)可視為

『指定為』。例如:要將 Command1 控制物件『的』caption(標題)屬性,

由 ”Command1” 預設值『指定為』”輸入”,以及變更 Command1 控制物件『的』

字型大小『指定為』16,其程式撰寫分別敘述如下:

屬性設定方法 說 明

Command1.Caption =" 輸入" Command1 為物件名稱,Caption(標題)為物件的屬性, 而" 輸入" 為字串形式資料,所以需利用雙引號括起來。 Command1.font.size = 16 表示 Command1 的 font(字型)的 size(大小)指定為 16。

註:16 為數字資料,不需使用雙引號。

請參閱光碟 EX2-1.2 資料夾內容,練習控制物件的屬性設定方式。

當我們在表單的空 白處,按滑鼠左鍵 兩下(引發事件), 則可利用程式來設 定物件的屬性。

(27)

2

當我們輸入小數點之後,會自動顯示所有該控制物件的屬性以及方 法,若無法正常顯示,則表示控制物件的名稱輸入不正確。當再輸入”c” 時,該選項會自動移到 c 開頭的屬性或方法的位置,所以當輸入 cap 之後, 即可直接按『空白鍵』直接設定。 當每輸入一行程式,並按下 鍵確認後,則該行程式所有內 容(不含屬性值)會自動變成大小寫(註:當我們在輸入程式時,大小寫皆可), 表示該行程式的語法沒有問題,這樣可以預防程式撰寫的錯誤發生!下圖 所輸入的程式,表示當在 Command1 按鈕上方按下滑鼠左鍵一下時(Click 事件),將變更 Command1 的標題(Caption)屬性內容。 若屬性值為

True(真)/ False(假)兩種內容,當按下等於(“=”)

符號時,會自動出現兩種選項,此時只要按『T』或『F』,然後再按『空 白鍵』即可。

(28)

2

2-1.3 控制物件『方法』的介紹

在 Visual Basic 中,方法(Method)是指可在控制物件上運作的程序,這

些程式敘述因為內建在控制物件上,因此,方法也是控制物件的一部份。當我

們在程式之中,使用某控制物件的方法時,內建在該控制物件的程序就會被自

行啟動執行,以完成指定的工作。

控制物件名稱

.方法 [參數資料]

例如:在程式設計中,我們經常使用 print 敘述,就是一種可以將資料顯

示在某個控制物件上的方法。

程式語法 說 明

Form1.print “test1” 在表單(Form)印出一個 “test1” 字串資料。

註:中間並沒有等號,和屬性設定方式有所不同,需要特別注意! Print “test2” 作用同上,但 Form1 控制物件名稱可省略。

Form1.cls cls 為清除表單內容;部份控制物件方法的『參數資料』欄並沒有。 註:另外還有 SetFocus 方法,是將駐點移至指定的控制項或表單。呼叫 SetFocus 方法以後,任何的 使用者輸入將指向指定的表單或控制項。駐點只能移到看得見的表單或控制項,也無法把駐點移到 Enabled 屬性設定為 False 的表單或控制項。其語法為: 物件名稱.SetFocus 即可。

請參閱光碟 EX2-1.3 資料夾內容,練習控制物件的方法。

當我們在表單的 空白處,按滑鼠 左鍵兩下,可清 除表單的內容。

(29)

2

2-2 基本控制物件的介紹

每當我們開啟一個新的專案名稱,便會自動產生預設值為 Form1 的表單,

接下來便是利用工具箱常用的控制物件,設計使用者介面的外觀,並設定所有

控制物件的相關屬性,包括顏色、字型、外觀等等。因此,每個控制物件的用

途與相關屬性、方法與引發的事件一定要徹底了解,當我們了解越多,就越能

設計出不同花樣的使用者操作介面,現在我們將逐一詳細介紹。若看不到左邊

工具箱,可利用『檢視 → 工具箱』或直接按一般工具列的『 』亦可。

2-2.1 Form(表單)控制物件

Form 即表單(又稱交談窗或視窗)

,可讓您在應用程式中建立視窗、對話

方塊及控制項,適於用來建置工具箱中控制物件的平台,當我們開啟一個新專

案時,會自動產生一個空白表單,預設名稱為 Form1

(註:所有控制物件的預設名 稱,其結尾皆以 “1” 開始命名,若遇相同控制物件則自動遞增命名,以防止控制物件名稱的 重複)

,接下來我們將開始介紹表單的各種事件、屬性與方法。

Form [表單] Label [標籤] CommandButton [命令鈕] TextBox [文字方塊] Frame [框架] CheckBox [核取方塊] ListBox [清單方塊] ComboBox [組合下拉式方塊]

(30)

2

Form(表單)控制物件常用的屬性:

屬 性 說 明 Name(名稱) 物件的名稱,預設的名稱為 Form1 開始。 AutoRedraw (自動重繪) 傳回或設定是否將由繪圖相關方法產生圖形輸出,設定為永久性的點陣圖。 註:如果設定 AutoRedraw 為 False,以前的輸出成為背景螢幕的一部份。當 AutoRedraw 設定為 False,用 Cls 方法清除繪圖區時不會刪除背景圖形,把 AutoRedraw 改為 True 後,才能用 Cls 將清除背景圖形。 BackColor (背景色彩) 傳回或設定物件的背景色彩。 BorderStyle (外框樣式) 傳回或設定物件的框線樣式,其設定值的描述如下: 0- 沒有框線:沒有框線或與框線相關的元件。 1 - 單線固定:具有控制功能方塊、標題列、最大化按鈕和最小化按 鈕。 2 - 大小可調整:可以用設定值 1 中列出的任何框線元件來改變大小。 3 - 雙線固定對話方塊:有控制功能表方塊和標題列,但沒有最大化 和最小化按鈕。 4 - 單線固定工具視窗:顯示一個具有關閉按鈕的不可變視窗,並用 縮小字型顯示標題列。 5 - 可調整工具視窗:顯示一個具有關閉按鈕的不可變視窗,並用縮 小的字型顯示標題列。 Caption (標題) 用來決定顯示在 Form 物件的標題列中的文字。當表單縮到最小時,該文 字會顯示在表單圖示的下面。 ControlBox (控制方塊) 傳回或設定一個數值,指示在執行階段控制功能表是否顯示在表單右上角。 註:若要顯示控制功能表方塊,還必須將表單的 BorderStyle 屬性值設為 1(單線 固定)、2(大小可調整)或 3(雙線固定對話方塊)。 DrawWidth (線寬) 傳回或設定繪圖方法輸出的線寬。 FillStyle (填充樣式) 傳回或設定用來填滿 Circle 和 Line 圖形方法產生的圓和方塊的圖樣。其 設定值的描述如下: 0 - 實心。 1 - 透明(預設值)。 2 - 水平線。 3 - 垂直線。 4 - 左上到右下的斜線。 5 - 右下到右上的斜線。 6 - 垂直交叉線。 7 - 對角交叉線。 ForeColor (前景色彩) 傳回或設定在物件中,顯示圖片和文字的前景色彩。 Height(高度) 傳回或設定表單的外部高度。 Icon(圖示) 傳回在執行階段表單處於最小化時所顯示的圖示。(同執行檔的圖示)

(31)

2

屬 性 說 明 註:在設計階段可在屬性視窗指定圖示,但所載入的檔案必須為 .ico 副檔名的格 式,如果不指定圖示,表單就會使用 Visual Basic 的預設圖示 。 Left(左邊界) 傳回或設定物件內部的左緣與收納器左緣間的距離。 MaxButton (最大化按鈕) 傳回一個數值,表示是否一個表單具有『最大化』按鈕。 MinButton (最小化按鈕) 傳回一個數值,表示是否一個表單具有『最小化』按鈕。 MouseIcon (滑鼠圖示) 傳回或設定自訂滑鼠圖示,在 MousePointer 屬性設為 99 時方可使用。 MousePointer (滑鼠指標) 傳回或設定一數值,用來指示執行階段中,當滑鼠移動到物件的特定部份 時,滑鼠指標的顯示型態。 0 - 幾何圖形由物件決定(預設值)。 1 - 箭號。 2 - 十字線。 3 - I 型。 4 - 圖示(矩形內的小矩形)。 5 - 尺寸線(指向東、南、西和北四方向的箭號)。 6 - 右上─左下尺寸線(指向東北和西南方向的雙箭號)。 7 - 垂─直尺寸線(指向南和北的雙箭號)。 8 - 左上─右下尺寸線(指向東南和西北方向的雙箭號)。 9 - 水─平尺寸線(指向東和西兩個方向的雙箭號)。 10 - 向上的箭號。 11 - 沙漏(表示等待狀態)。 12 - 不允許放下。 13 - 箭號和沙漏(只用在 32 位元 Visual Basic 中)。 14 - 箭號和問號(只用在 32 位元 Visual Basic 中)。 15 - 四向尺寸線(只用在 32 位元 Visual Basic 中)。 99 - 透過 『MouseIcon 屬性』所指定的自訂圖示。 Picture (圖片) 傳回或設定控制項中要顯示的圖形(可當背景圖案)。若在設計階段設定 Picture 屬性,圖形會被儲存起來,並與表單同時載入,如果建立執行檔, 檔案中就會包含此圖形。註:請參閱附錄 A 的 LoadPicture 函數,以載入圖片。 ScaleHeight (內部高度) 傳回或設定物件『內部垂直/高度』(ScaleHeight)量測單位值。 ScaleWidth (內部寬度) 傳回或設定物件『內部水平/寬度』(ScaleWidth)量測單位值。 StartUpPosition (起始位置) 傳回或設定表單視窗首次出現的位置。 0 - 自訂。 1 - 所屬視窗中央。 2 - 螢幕中央。 3- 系統預設值(置於螢幕的左上角)。 Top(上邊界) 傳回或設定物件的內部頂端和收納器的上緣間的距離。

(32)

2

屬 性 說 明 Width(寬度) 傳回或設定表單的外部寬度。 WindowState (視窗狀態) 傳回或設定一值,用來指定在執行階段時,表單視窗的視覺化狀態。 0 - 正常(預設值)。 1 - 最小化為一個圖示。 2 - 最大化到最大尺寸。

請參閱光碟 EX2-2.1.1 資料夾內容,練習表單的屬性設定。

註 1: 當希望編譯後的執行檔有較特別的縮小圖示,則須設定 Icon 屬性,請自行利用 『開 始 → 搜尋 → 檔案或資料夾』,找到以 ico 或 cur 為副檔名的檔案即可,此時 請編譯成執行檔或是在執行過程做『最小化』,並觀察該圖示的變化。 註 2: 表單背景圖片的設計可利用現成圖檔(利用網路下載或圖庫光碟),亦可利用繪圖 軟體自行創作設計(背景的花樣最好不要太複雜,顏色以淺色和深色系互相搭配 為主),例如: PhotoShop 或 PhotoImpact 等繪圖軟體,可自行參考本書附錄 D 的 PhotoImpact 操作簡介(包含多媒體教學,讓您無師自通)。 試試看,下列屬性如何設定? BackColor = ? BorderStyle = ? Caption = ? StartUpPosition = ? 試試看,下列屬性如何設定? BorderStyle = ? Icon = ?(注意左上角圖示) MinButton = ? Picture = ?

(33)

2

Form(表單)常用的方法:

方 法 說 明 Cls(清除) Cls 方法可以清除 Form 控制物件中的圖形或文字。如果應用程式執行 時,在表單中放入文字或圖形,利用 Cls 方法,可以清除這些文字或圖形。 物件名稱.Cls Show(顯示) Hide(隱藏) 在程式設計中,有時我們需要在多個表單間切換,以供使用者操作或閱覽, 這時,我們可以利用 Hide(隱藏)方法將表單隱藏起來,利用 Show(顯 示)方法將表單顯示出來。 物件名稱.Show 或 物件名稱.Hide 註: Hide 方法,顧名思義就是將表單隱藏起來,因此,被隱藏起來的表單,使用者 將無法再操作或使用,但 Hide 方法,是將表單由螢幕移除而已,實際上表單 依然留在記憶體中,因此,執行中的程式,仍然可以使用 Show 方法將隱藏起 來的表單再顯示出來。 Pset(畫點) 在(X,Y)座標上畫一『點』。 物件名稱.PSet(X 座標,Y 座標), [顏色] 註 1: 所畫點的大小由 DrawWidth 的屬性設定來決定。 註 2: 若省略 [顏色] 這個值,則直接使用 ForeColor 的屬性值,或可以使用 RGB 函數或 QBColor 函數來指定色彩,請參閱附錄 A 使用說明。 Line(畫直線) 從(X1,Y1)座標到(X2,Y2)座標上畫出一直線或方形。 物件名稱.Line(X1,Y1)-(X2,Y2), [顏色], [B][F] 註 1: (X1, Y1)若省略,則表示從終點座標開始。 註 2: 若省略 [顏色] 這個值,則使用 ForeColor 的屬性值,或可以使用 RGB 函 數或 QBColor 函數來指定色彩,請參閱附錄 A 函數使用說明。 註 3: [B] 參數表示為『方框』,而 [BF] 表示實心的方塊。若省略 [顏色] 這個值, 仍需用逗號區隔。 Circle (畫圓形) 以(X,Y)座標為圓心,在物件上畫一圓、橢圓或弧形。 物件名稱.Circle(X,Y), 半徑, [顏色],[起點],[終點],[外觀] 註 1: 若省略 [顏色] 這個值,則使用 ForeColor 的屬性值,或可以使用 RGB 函 數或 QBColor 函數來指定色彩,請參閱附錄 A 函數使用說明。 註 2: [起點][終點]用來指示畫弧形或部份圓或是橢圓時,指定弧形的起點與終點。 兩者的範圍從-2pi 到 2pi 徑度。 預設值為 0 徑度 [起點] 到 2 pi 徑度 [終點]。 註 3: [外觀] 用來指示圓的縱橫比(垂直軸/水平軸)的值。預設值為 1.0,表示 其在任何螢幕上產生一正(非橢圓)圓。

(34)

2

請參閱光碟 EX2-2.1.2 資料夾內容,練習表單的 Cls 與 Pset 方法的使用。

註 1:程式碼綠色部分為『註解』,以單引號為起始,用來描述該行程式之說明,方便日 後維護程式。 註 2:該程式在表單上方按滑鼠左鍵兩下,可清除表單所有內容;移動滑鼠觀察表單變 化的情形,我們利用亂數函數(Rnd)產生不同顏色的變化。 註 3:欲變更畫點的大小,請自行修改表單的 DrawWidth 屬性設定。

請參閱光碟 EX2-2.1.3 資料夾內容,練習表單的 Line 方法的使用。

2 3 4 1 5 程式註解

(35)

2

請參閱光碟 EX2-2.1.4 資料夾內容,練習表單的 Circle 方法的使用。

請參閱光碟 EX2-2.1.5 資料夾內容,練習多個表單的 Show/Hide 方法的使用。

註:新增一個表單是利用『專案 → 新增表單 → 選擇表單 → 開啟』。若要將整個表 單從記憶體釋放,可輸入『Unload Me』(Me 表示目前正在工作的表單名稱)以取 代 Hide 的方法。 1 2 3 4 5 6 當 我 們 在 表 單 的 上 方 點 選 滑 鼠 左 鍵 可 立 即 引發 Click 事件,而切 換到另一個表單,請仔 細 觀 察 左 上 角 表 單 名 稱的變化。

(36)

2

Form(表單)常用的事件:

事 件 說 明

Load(載入) Load 事件在載入表單的時候發生。當一個表單啟動的同時,Form 控制物 件就會發生 Load 事件;此外,也可以發生在應用程式使用 Load 敘述來啟動 表單時。因此,如果需要在表單顯示之前,先完成某些特定的工作,我們 可將完成這些特定工作對應的程式碼,撰寫在 Load 事件程序中。 Unload(釋放) Unload 事件發生在將表單由螢幕上移除時。當選按視窗中的關閉鈕,或在 程式碼中使用 Unload(釋放)敘述執行時,便會引發 Unload(釋放)事件。 註: 表單常用事件還包括 Click、DbClick、MouseDown、MouseUp、MouseMove、KeyDown 事件,請自行參閱本書 2-1.1 說明,當我們在表單上方用滑鼠點左鍵兩下以撰寫程式, 其事件的預設值為 Load。

2-2.2 Label(標籤)控制物件

Label(標籤)控制物件,可用來將文字顯示於視窗畫面上,因此,當要

在表單上放置提示或引導性的文字,我們就需要使用這個控制物件。

Label(標籤)控制物件常用的屬性:

屬 性 說 明 Name(名稱) 物件的名稱,預設的名稱為 Label1。 Alignment(對齊方式) 設定或傳回一個值,決定資料的對齊方式。 0 - 文字靠左對齊(預設值)。 1 - 文字靠右對齊。 2 - 文字置中。 Appearance(外觀) 傳回或設定控制項在設計階段的繪製風格。 0 - 以平面方式繪製控制項,且表單沒有視覺化效果。 1 - 3D 立體。帶有立體效果的繪製控制項(預設值)。 AutoSize(自動調整) 傳回或設定一個值,決定控制項是否自動調整大小,以顯示所有 內容。 True - 自動改變控制項大小,以顯示全部內容。 False - 保持控制項大小不變(預設值)。超出區域的內容 會被裁掉。 BackColor(背景色彩) 傳回或設定物件的背景色彩。 BackStyle(背景樣式) 傳回或設定一個數值,指定控制項的背景是透明或是非透明的。 0 - 透明 - 在控制項後的背景色彩和任何圖形都是視覺化 的。 1 - 不透明 - 用控制項的 BackColor 屬性設定值填滿該 控制項,並隱藏該控制項後面所有色彩和圖形(預設值)。

(37)

2

屬 性 說 明 BorderStyle(外框樣式) 傳回或設定物件的框線樣式。 0 - 沒有框線。 1 - 單線固定。 Caption(標題) 決定顯示在控制項內的文字。 Enabled(致能) 傳回或設定一個值,用來確定控制項是否能夠對使用者產生的事 件作出反應。 True - 允許控制項對事件作出反應(預設值)。 False - 阻止控制項對事件作出反應。 Font(字型) 顯示標籤文字的字型。由於尚包括交談視窗,該子屬性設定的方 式如下所示: 物件名稱.Font.Bold = True/False(粗體) 物件名稱.Font.Italic = True/False (斜體) 物件名稱.Font.Underline = True/False (底線) 物件名稱.Font.Size = 28 (字型大小) 物件名稱.Font.Name = "細明體" (字型名稱) ForeColor(前景色彩) 傳回或設定在物件中,顯示圖片和文字的前景色彩。 Index(索引) 傳回或設定在集合物件中唯一可辨識物件數目。按照預設值, Index 屬性被設定為在集合物件中建立物件的順序。當有多個相 同物件時,物件名稱必須不同,若需使用相同名稱,則要採用陣 列方式,即以 Label1(0)、Label1(1)、label1(2)…來區別。 MouseIcon(滑鼠圖示) 請參閱 Form 屬性說明。 MousePointer(滑鼠指標) 請參閱 Form 屬性說明。 ToolTipText(提示文字) 傳回或設定一個工具祕訣,如果僅用圖片作為物件的標籤,那麼 使用此屬性可以用一些簡短的字詞來解譯該物件。 Visible(可顯示) 傳回或設定一個值,指示某物件為視覺化的或隱藏。

註:Label(標籤)控制物件常用的事件包括 Click(預設值)、DbClick、MouseDown、MouseUp、 MouseMove。

請參閱光碟 EX2-2.2 資料夾內容,練習 Label 標籤的屬性設定。

註 1: 移動滑鼠試試看?使用不同的屬性,會有不同呈現的效果,當您了解越多屬性的 設定,則越能呈現更佳的視窗 (視覺) 效果。

註 2: 若欲得到各種樣式的滑鼠指標,首先需設定 MousePointer = 99,然後再將 MouseIcon 屬性自行連結到『ico』『cur』的檔案 (請利用『開始 → 搜尋 → 檔 案或資料夾』找到)。

(38)

2

2-2.3 CommandButton(命令鈕)控制物件

讓使用者能夠與應用程式互動的最簡單方法,就是提供按鈕讓使用者選

取。您可以使用 Visual Basic 所提供的命令按鈕(Command Button)控制項,

或是內含圖形(例如一個圖示)的影像控制項,來建立您自己的按鈕。我們也

可以利用 PictureBox 或 Image 控制物件來製作,請自行參閱後面該物件之說明。

CommandButton(命令鈕)控制物件常用的屬性:

屬 性 說 明 Name(名稱) 物件的名稱,預設的名稱為 Command1。 Appearance(外觀) 傳回或設定控制項在設計階段的繪製風格。 0 - 以平面方式繪製控制項,且表單沒有視覺化效果。 1 - 3D 立體(預設值)。帶有立體效果的繪製控制項。 BackColor(背景色彩) 傳回或設定物件的背景色彩。欲正常顯示,需令屬性 Style=1 才行。 Cancel(取消) 用來決定指令按鈕是否為表單上的 Cancel 按鈕。按下 鍵時 也 能 選 取 CommandButton ( 即 啟 動 Click 事 件 ), 則 需 要 將 CommandButton 的 Cancel 屬性設成 True。

Caption(標題) 決定顯示在控制項內的文字。欲製作快速鍵,請參閱補充說明。 Default(預設值) 傳回或設定一個數值,以確定哪一個 CommandButton 控制項是

表單的預設指令按鈕(Default Command Button)。

註:表單中只能有一個指令按鈕是預設按鈕,當某個指令按鈕的 Default 屬性設定為 True 時,表單中其它的指令按鈕會自動設為 False當指令按鈕的 Default 設定為 True ,且其父表單在使用中,使用 者就可以直接按下 鍵來選取該按鈕(即啟動 Click 事件)。 其 它 具 有 駐 點 的 控 制 項 都 不 會 接 受 產 生 的 鍵 盤 事 件 (KeyDown、KeyPress),除非使用者將駐點移到同一表單的另外一

(39)

2

屬 性 說 明 個指令按鈕上。在這種情況下,按下 鍵會選取具有駐點的指 令按鈕,而非該預設指令按鈕。 Enabled(致能) 請參閱 Label 屬性說明。 Font(字型) 請參閱 Label 屬性說明。 Index(索引) 請參閱 Label 屬性說明。 MaskColor(遮罩色彩) 傳回或設定一個在按鈕的圖片中作為『遮罩』(透明)的色彩。 MouseIcon(滑鼠圖示) 請參閱 Form 屬性說明。 MousePointer(滑鼠指標) 請參閱 Form 屬性說明。

Picture(圖片) 請參閱 Form 屬性說明。但欲正常顯示,需令屬性 Style = 1 才行。

Style(樣式) 傳回或設定控制項的外觀是否為標準的視窗樣式,或為使用者所 自訂的圖形樣式。 0 - 標準外觀(預設值)。 1 - 圖片外觀。 TabIndex(定位索引) 傳回或設定物件在其表單中的定位順序。表單中每一個物件皆可 設定一個定位順序,當使用者按 鍵時,會按該順序移動駐 點。 註:請參閱下面補充說明。 TabStop (停駐) 傳回或設定一值,用來決定使用者是否可用 鍵,把駐點 (Focus)移到某物件。 True - 可使用 鍵將駐點停駐在物件(預設值)。 False - 無法使用 鍵將駐點停駐在物件。 ToolTipText(提示文字) 請參閱 Label 屬性說明。 Visible(可顯示) 請參閱 Label 屬性說明。

快速鍵使用說明

大多數 Visual Basic 應用程式中,或多或少都會有幾個指令按鈕, 可讓使用者按下按鈕來執行某個動作。而當您選取按鈕時,不僅會執行相 對應的動作,而且還會判斷目前按鈕是被按下或是被放開。只要您按下按 鈕,就會呼叫 Click 事件程序。您可在 Click 事件程序中撰寫一段程式 碼,來指定要執行的動作。 在執行階段,有許多種方法可以用來選取指令按鈕: 1. 用滑鼠按一下按鈕。 2. 按下 鍵將駐點移到您要的按鈕上,再按下空格鍵或 鍵來 選取該按鈕。

(40)

2

3. 使用該指令按鈕的快速鍵( + 底線標示的字母)。

上面第三種方式,是在 Caption 屬性的文字尾端插入一個(&)符號, 可使緊跟此符號之後的字元成為該按鈕的快速鍵,例如:Caption 的屬性 設為 ”確定(&S)” ,則『S』是這個按鈕的快速鍵(Access Key),用底 線標示,當按下 + 按鍵,即相當於觸發該按鈕的 Click 事件。

TabIndex 屬性

當我們在表單上佈建工具箱中的控制物件時,除了大多數控制物件 外, Visual Basic 會自動分配一個定位順序給每一個控制物件,並將所 分配的定位順序存放在

TabIndex

屬性中。利用

TabIndex

的定位順序,在 程式執行狀態中,如果我們按 鍵或 + 鍵時,就會使 表單上的游標駐點(Focus),按照一個控制物件的定位順序,從每一個 物件以順向(按 鍵)或是反向(按 + 鍵)的次序移 到下一個物件。因此,使用者在操作中,除了可使用滑鼠來移動游標駐點 之外,亦可直接用 鍵,來達到移動游標駐點的目的。要特別注意

TabStop 屬性需設定為 “True”, TabIndex

屬性才能有作用。

請參閱光碟 EX2-2.3.1 資料夾內容,練習 CommandButton 命令鈕的屬性設定。

註:試試看,底下四個命令鈕的屬性哪些被改變?如何上網抓圖並製作漂亮特殊按鈕?

可自行直接參閱光碟『附錄 E:PhotoImpact 8 操作簡介』資料夾的多媒體教學範例。

請參閱光碟 EX2-2.3.2 資料夾內容,練習 Cancel、Default、TabIndex 屬性

與快速鍵的使用。

(41)

2

註:試試看,分別按下 、 + (觀察駐點的變化)、 與 + 等按鍵的執行結果有何不同,當駐點停在文字方塊 Text1 時,再按下 結果又如何? 註:CommandButton(命令鈕)控制物件常用事件包括 Click(預設值)、MouseDown、 MouseUp、MouseMove、KeyDown 事件,請自行參閱本書 2-1.1 說明,但要特別注 意的是 CommandButton 控制物件並無 DbClick 所引發的事件。

2-2.4 TextBox(文字方塊)控制物件

TextBox(文字方塊)控制項有時也稱為編輯欄位或者編輯控制項,可顯

示設計階段輸入的、使用者輸入的、或執行階段在程式碼中賦予的資訊。為了

在 TextBox 控制項中顯示多行文字,要將 MultiLine 屬性設定為 True。如

果多行 TextBox 沒有水平捲軸,那麼即使 TextBox 調整了大小,文字也會自

動換列,若要在 TextBox 上顯示捲軸,需要設定 ScrollBars 屬性。

TextBox(文字方塊)控制物件常用的屬性:

屬 性 說 明 Name(名稱) 物件的名稱,預設的名稱為 Text1。 Alignment(對齊方式) 請參閱 Label 屬性說明。 BackColor(背景色彩) 請參閱 Label 屬性說明。 BorderStyle(外框樣式) 請參閱 Label 屬性說明。 Enabled(致能) 請參閱 Label 屬性說明。

(42)

2

屬 性 說 明 Font(字型) 請參閱 Label 屬性說明。 ForeColor(前景色彩) 請參閱 Label 屬性說明。 Index(索引) 請參閱 Label 屬性說明。 MaxLength(最大長度) 傳回或設定一值,用來指出在 TextBox 控制項中是否有一能夠輸 入字元的最大數量,如果是,則指定能夠輸入字元的最大數量。 MouseIcon(滑鼠圖示) 請參閱 Form 屬性說明。 MousePointer(滑鼠指標) 請參閱 Form 屬性說明。 MultiLine(多行) 傳回或設定一值,用來指示 TextBox 控制項是否能夠接受和顯示 多行的文字。 True - 允許多行文字。 False - 忽略換行控制碼並將資料限制在一行內(預設值)。 PasswordChar(密碼) 傳 回 或 設 定 一 個 值 , 用 來 指 示 所 鍵 入 的 字 元 或 預 留 位 置 在 TextBox 控制項中是否要顯示出來。欲在對話方塊中建立一密碼 欄位時,可使用此屬性。雖然任何字元均可使用,但大多數 Windows 的應用程式是使用星號(*)表示。 ScrollBars(捲軸) 傳回或設定一值,用來指示一物件是否有水平捲軸或垂直捲軸。 對 於 ScrollBars 屬 性 設 定 值 為 1 到 3 , 但 您 必 須 先 設 定 MultiLine 屬性為 True。 0 – 沒有捲軸 (預設值)。 1 – 水平外觀。 2 – 垂直捲軸。 3 – 兩者皆有。 TabIndex(定位索引) 請參閱 Command 屬性說明。 TabStop (停駐) 請參閱 Command 屬性說明。 Text(文字) 傳回或設定編輯區的文字,最多可以有 2048 個字元,但如果 MultiLine 屬性設為 True,則最大值大約是 32K 個字元。 註:請注意該物件並無 Caption(標題)屬性,而是利用 Text 屬性設定 顯示內容。 ToolTipText(提示文字) 請參閱 Label 屬性說明。 Visible(可顯示) 請參閱 Label 屬性說明。

(43)

2

TextBox(文字方塊)常用的事件:

事 件 說 明 Change(改變) 改變文字方塊的內容。該事件發生在使用者改變文字,或以程式碼改變 Text 屬性設定時。 GotFocus (獲得駐點) 發生在物件獲得駐點時;可以透過使用者動作,如利用 切換,或按 一下物件,或者在程式碼中用 SetFocus 方法來改變駐點。 LostFocus (失去駐點) 發生在物件失去駐點時,失去駐點可能由於使用者的動作,如按定位鍵 或按一下另一個物件,或者是在程式碼中使用 SetFocus 方法改變駐 點。因此,我們可用來檢查輸入資料是否正確的程式碼,撰寫在 LostFocus 事件程序中,如此一來,當使用者完成某一個 TextBox 的資料輸入,而將游 標駐點移至另一個控制物件時,程式就會立即檢查文字方塊之中剛輸入資 料的正確性,以顯示相關的警告。 註:文字方塊常用事件還包括 Click、DbClick、MouseDown、MouseUp、MouseMove、KeyDown 事件,請自行參閱本書 2-1.1 說明,該物件的預設值為 Change 事件。

請參閱光碟 EX2-2.4 資料夾內容,練習 TextBox 文字方塊的屬性設定。

註:試試看,底下四個文字方塊的文字如何輸入,以及哪些屬性需要被重新設定?

(44)

2

2-2.5 Frame(框架)控制物件

Frame 為控制項提供可識別的分組。若要將控制項分組,首先需要繪製

Frame 控制項,然後繪製 Frame 裡面的控制項,這樣就可以同時移動框架和

裡面的控制項。使用這個控制物件,可將一組組不同的控制物件明顯的加以區

隔分類,我們可以稱之為『組群』

,以使表單變得更整齊而有系統。

使用 Frame 有二個優點,第一個優點是如前述可提升表單外觀的設計品

質,第二個優點是便於調整表單上控制物件的位置,因為只要移動 Frame,則

放置在 Frame 中的控制物件也會隨之移動,所以當需要調整相關控制物件的

位置時,我們只要移動 Frame 的位置,即可一次完全將框架中所有控制物件

的位置調整。

Frame(框架)控制物件常用的屬性:

屬 性 說 明 Name(名稱) 物件的名稱,預設的名稱為 Frame1。 Appearance(外觀) 請參閱 Label 屬性說明。 BackColor(背景色彩) 請參閱 Label 屬性說明。 BorderStyle(外框樣式) 請參閱 Label 屬性說明。 Enabled(致能) 請參閱 Label 屬性說明。 Font(字型) 請參閱 Label 屬性說明。 ForeColor(前景色彩) 請參閱 Label 屬性說明。 Index(索引) 請參閱 Label 屬性說明。 MouseIcon(滑鼠圖示) 請參閱 Form 屬性說明。 MousePointer(滑鼠指標) 請參閱 Form 屬性說明。 TabIndex(定位索引) 請參閱 Command 屬性說明。 ToolTipText(提示文字) 請參閱 Label 屬性說明。 Visible(可顯示) 請參閱 Label 屬性說明。

(45)

2

請參閱光碟 EX2-2.5 資料夾內容,練習框架的屬性設定與使用時機。

註:試試看,底下三個框架的屬性有何不同?並移動框架,看看框架內的物件是否跟著 全部移動?

2-2.6 CheckBox(核取方塊)控制物件

群組(表單或框架)之中可以使用多個 CheckBox 控制項,以顯示多項

的選擇,讓使用者可選擇其中的一項或多項。您也可以透過 Value 屬性來設

定 CheckBox 的值。若要在 CheckBox 後面顯示文字,您就必須設定 Caption

屬性。

CheckBox 和 OptionButton 控制項功能相似,但二者之間也有一個頗大

的差別:在一個組群中可以同時選定『任意多個』 CheckBox 控制項;相反

地,在一個組群中,在任何時侯則只能選取『一個』 OptionButton 控制項。

CheckBox(核取方塊)控制物件常用的屬性:

屬 性 說 明 Name(名稱) 物件的名稱,預設的名稱為 Check1。 Alignment(對齊方式) 請參閱 Label 屬性說明。 Appearance(外觀) 請參閱 Label 屬性說明。 BackColor(背景色彩) 請參閱 Label 屬性說明。 Caption(標題) 請參閱 Label 屬性說明。 Enabled(致能) 請參閱 Label 屬性說明。 BorderStyle = 1(單線固定) BorderStyle = 0(沒有框線); 單選 BorderStyle = 0(沒有框線); 可複選

(46)

2

屬 性 說 明 Font(字型) 請參閱 Label 屬性說明。 ForeColor(前景色彩) 請參閱 Label 屬性說明。 Index(索引) 請參閱 Label 屬性說明。 MaskColor(遮罩色彩) 請參閱 Command 屬性說明。 MouseIcon(滑鼠圖示) 請參閱 Form 屬性說明。 MousePointer(滑鼠指標) 請參閱 Form 屬性說明。

Picture(圖片) 請參閱 Command 屬性說明。欲正常顯示,需令屬性 Style=1 才行。 Style(樣式) 請參閱 Command 屬性說明。 TabIndex(定位索引) 請參閱 Command 屬性說明。 TabStop (停駐) 請參閱 Command 屬性說明。 ToolTipText(提示文字) 請參閱 Label 屬性說明。 Value(值) 傳回或設定控制項的狀態。 0 - 不選定(預設值)。 1 - 為有選定。 2 - 為變灰(變暗,表示沒有作用)。 Visible(可顯示) 請參閱 Label 屬性說明。 註:該控制物件常用事件包括 Click(預設值)、MouseDown、MouseUp、MouseMove、KeyDown 事件。

請參閱光碟 EX2-2.6 資料夾內容,練習核取方塊的屬性設定。

註:試試看,底下五個核取方塊的屬性有何不同?若改用圖片當背景(利用 Picture 屬性) 的核取方塊像不像命令鈕 (CommandButton) 呢?

(47)

2

2-2.7 OptionButton(選項按鈕)控制物件

OptionButton(選項按鈕)用來顯示一個可以開啟或關閉的選項。在一組選

項按鈕中使用 OptionButton 顯示選項,使用者只能選取其中的一項。若要在

Frame 中將 OptionButton 控制項分組,首先請先繪製 Frame,然後在內部繪製

OptionButton 控制項。同一收納器中的 OptionButton 控制項為一個群組。

OptionButton 控制項和 CheckBox 控制項功能相似,但是二者間也存在

著重要差別。在選取一個 OptionButton 時,同一個群組中的其它 OptionButton

控制項會自動取消。但您卻可以選擇任意數量的 CheckBox 控制項。另外兩

者的最大差異是 Value 屬性設定的方式,CheckBox 控制項的 Value 為 0、1、

2,但 OptionButton 控制項的 Value 為 True 或 False。

OptionButton(選項按鈕)控制物件常用的屬性:

屬 性 說 明 Name(名稱) 物件的名稱,預設的名稱為 Option1。 Alignment(對齊方式) 請參閱 Label 屬性說明。 Appearance(外觀) 請參閱 Label 屬性說明。 BackColor(背景色彩) 請參閱 Label 屬性說明。 Caption(標題) 請參閱 Label 屬性說明。 Enabled(致能) 請參閱 Label 屬性說明。 Font(字型) 請參閱 Label 屬性說明。 ForeColor(前景色彩) 請參閱 Label 屬性說明。 Index(索引) 請參閱 Label 屬性說明。 MaskColor(遮罩色彩) 請參閱 Command 屬性說明。 MouseIcon(滑鼠圖示) 請參閱 Form 屬性說明。 MousePointer(滑鼠指標) 請參閱 Form 屬性說明。

Picture(圖片) 請參閱 Form 屬性說明。欲正常顯示,需令屬性 Style=1 才行。 Style(樣式) 請參閱 Command 屬性說明。

TabIndex(定位索引) 請參閱 Command 屬性說明。 TabStop (停駐) 請參閱 Command 屬性說明。

(48)

2

屬 性 說 明 ToolTipText(提示文字) 請參閱 Label 屬性說明。 Value(值) 傳回或設定控制項的狀態。 True - 表示已選取了該按鈕。 False - 表示沒有選取該按鈕(預設值)。 Visible(可顯示) 請參閱 Label 屬性說明。 註:該控制物件常用事件包括 Click(預設值)、MouseDown、MouseUp、MouseMove、KeyDown 事件。

請參閱光碟 EX2-2.7 資料夾內容,比較『選項按鈕』與『核取方塊』的使

用時機。

2-2.8 ListBox(清單方塊)控制物件

ListBox 控制項用來顯示項目清單,從其中可以選擇一或多項,如果項目

總數超過了可顯示的項目數,在 ListBox 控制項上就會自動新增捲軸。如果

未指定項目,則 ListIndex 屬性數值是-1,清單中的第一個項目是 ListIndex

為『0』,最後一個項目是『ListCount– 1』。

使用 AddItem 或者 RemoveItem 方法可以新增或者刪除 ListBox 控制

項中的項目。您可設定 List 屬性內容,利用 ListCount 和 ListIndex 屬性,

來存取 ListBox 中的項目;您也可以在設計階段,使用 List 屬性在清單中直

接增加項目

(註:換行需同時按 ┼ ,全部編輯完後按 即可)

怎樣的場合適於『單選』呢?

(49)

2

若使用者需要輸入資料,使用選項的方式可提高資料輸入的效率與正確

性。如下圖所示的 Word 中『字型』視窗,當我們要撰寫某種字型樣式或大小

時,只要以點選方式就可將字型樣式或大小的資料,傳送給 Word 軟體,而不

必逐字輸入,避免人為的失誤,這就是利用 ListBox 控制物件來設計的優點。

ListBox(清單方塊)控制物件常用的屬性:

屬 性 說 明 Name(名稱) 物件的名稱,預設的名稱為 List1。 Appearance(外觀) 請參閱 Label 屬性說明。 BackColor(背景色彩) 請參閱 Label 屬性說明。 Columns(行) 傳回或設定一個值,用來決定 ListBox 控制項要垂直還是水平捲 動,以及資料行的項目如何顯示。若是水平捲動, Columns 屬 性將決定顯示多少資料行。對水平捲動的 ListBox 來說,資料行 寬度等於 ListBox 寬度除以資料行數。 0 - 項目排在單一資料行,且 ListBox 垂直捲動(預設值)。 1 到 n - 項目先排滿第一個資料行、然後第二個,以此類推。 Enabled(致能) 請參閱 Label 屬性說明。 Font(字型) 請參閱 Label 屬性說明。 ForeColor(前景色彩) 請參閱 Label 屬性說明。 Index(索引) 請參閱 Label 屬性說明。 List(清單) 傳回或設定控制項的清單部份。清單是一個字串陣列,陣列的每 個項目都是一個選項,ListBox 和 ComboBox 控制項在設計階 段,可以透過屬性視窗來選取,而對 DirListBox,DriveListBox, 和 FileListBox 控制項在執行階段是唯讀的,但對 ComboBox 和 ListBox 控制項在執行階段是可讀寫的。 ListCount(清單數量) 傳回清單中的項目數。 註:本項屬性值僅能使用程式敘述取得。 ListIndex(清單索引) 傳回清單中被選取項目的索引,清單中的資料依序由 0、1、2、3 … 排列。 註:本項屬性值僅能使用程式敘述取得,且位置是從 0 開始。

數據

圖 1:無法開啟 Access2002 版本,產生錯誤訊息

參考文獻

相關文件

(三)使用 Visual Studio 之 C# 程式語言(.Net framework 架構)、Visual Studio Code 之 JavaScript 程式語言(JavaScript framework 架構) ,搭配 MS

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系 統環境下,將給與的紙本或電子檔(如 excel

根據商務活動之舉辦目標及系統需求,應用 Microsoft Office 文書處理 Word、電子試算表 Excel、電腦簡報 PowerPoint、資料庫 Access

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系統環境 下,將給與的紙本或電子檔(如 excel

(軟體應用) 根據商務活動之舉辦目標及系統需求,應用 Microsoft Office 文書處理 Word、電子試算表 Excel、電腦簡報 PowerPoint、資料庫 Access

Private Sub Form_Click() MsgBox Combo1.ListCount MsgBox Combo1.ListIndex..

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系 統環境下,將給與的紙本或電子檔(如 excel

Windows/ Linux/ Mac 各種平台的開發套件,使我們能夠透過各種平台來開發 Android 軟體,所有的 Android 應用程式都是使用 Java