05855BB03.indd

Similar documents
投影片 1

編輯大意 一 本書是一本專為普通高中 技術高中學生編寫的程式語言入門書籍, 全書以 Visual Basic 2015 Express 版的程式開發環境, 來介紹程式基礎實作, 適合首次學習程式語言及程式設計的學生使用 二 本書共分 Ⅰ Ⅱ 兩冊,Ⅰ 冊著重介紹程式設計概念與流程控制,Ⅱ 冊則著重介

VB程序设计教程

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00

Microsoft PowerPoint - VB14.ppt

投影片 1

Ch6 Visual Basic表單,功能表與模組

投影片 1

Microsoft PowerPoint - vb_net4

IsPostBack 2


untitled

05224AA11.indd

Chapter 16 集合

Excel VBA Excel Visual Basic for Application

Visual Basic D 3D

untitled

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4

Web Form 表單與事件處理

PowerPoint Presentation

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h

Microsoft Word - AEL CH07

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

導讀 ASP.NET HTML ASP 第一篇 基礎篇第 1 章 認識 ASP.NET ASP.NET ASP.NET ASP.NET ASP.NET 第 2 章 認識 Visual Studio 20 開發環境 Visual Studio 20 Visual Studio 20 第二篇 C# 程式

Microsoft PowerPoint - Chapter5

第 4 章 表單與程式設計

05855BT05.indd

Microsoft PowerPoint - 第14章.ppt

AutoCAD 用戶如何使用 ArchiCAD

05856BT09.indd

Photoshop CS3 影像創造力 基礎講堂 8 學習流程 學習重要性 學習難度 必學指令工具 實作應用範例 創造舞台燈光的漸層繪圖 延伸學習 雜訊與半透明漸層 8-1 Photoshop Photoshop 8 136

馬孝先

1-6 Access 2016 實力養成暨評量解題秘笈 102. 書籍與作者 Step1 按 建立 索引標籤 資料表 群組的 資料表設計 按鈕 Step2 由上而下分別建立下列欄位並設定資料類型 : 欄位名稱 : ID, 資料類型 : 自動編號 欄位名稱 : BName, 資料類型 :

untitled

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

計算機程式及實習 期末報告ppt製作 題目:南台黑心早餐店結帳系統

Microsoft Word - ACI chapter00-1ed.docx

Microsoft PowerPoint - VB5

PowerPoint 簡報

E-Form Word

( )... 5 ( ) ( )

1 1 Excel VBA 說明 ( ) (_) STEP4 Excel 2 STEP5 A1 1 B2 2 C3 3 STEP6 A1 STEP7 > > 1-11

Advanced ASP.NET Controls

Microsoft PowerPoint - 09_事件驅動.ppt

【電腦閱卷專用】

MVB-1001.DOC

Microsoft PowerPoint - ASP_NET_04

Microsoft Word - ch doc

7 DataSet DataSet TableColumnDataSet DataSet NOTE DataSet DataAdapterDataSetDataAdapter DataSet DataSetDataSetDataSet NorthwindDataSet DataSet Dim Nor

Microsoft PowerPoint - 11_EventHandle.pptx

Microsoft Word - ch05.doc

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

投影片 1

Microsoft Word - GUI design.doc

Microsoft Word - 02.doc

2

APA Preliminaries Text Reference 1. Cover Page 2. Title Page 3. Signature Page 4. Advisor s recommendation letter 5. Approval page 6. Copyri

Microsoft PowerPoint - vb.net2.ppt

陳韻如 陳榮霖:陣列控制項技術之研究與應用.doc

VB控件教程大全

<img>

書面

CU0594.pdf

untitled

ActiveX Control

投影片 1

TW簡單操作手冊更新版.indd

Microsoft PowerPoint - 07_WinProg.pptx

Microsoft Word - ACG chapter00c-3ed.docx

視窗程式設計

Microsoft Word - administrative-law-08.doc

Microsoft Word - 小心翼翼的二十一點N.doc

輕鬆學 PhotoImpact X3 1 / / / 3 0 RGB 12,255,255 小常識 3 056

CC213

穨ac3-3.PDF

建立Android新專案

contents 1 4 Chapter 2 Chapter 5 Chapter 管理自動儲存的版本 以文件復原窗格復原檔案 自訂快速工具 自訂快速存取工具列 自訂功能區

The golden pins of the PCI card can be oxidized after months or years

DeskJet F2180 DeskJet F4185 Deskjet F4280 DeskJet D2460 OK N/A N/A DeskJet 1660 OK ( 無提供 Win 2000 驅動 ) N/A N/A PSC 1315 Photosmart 2575 Photosmart C13

Chapter 3 Camera Raw Step negative clarity +25 ] P / Step 4 0 ( 下一頁 ) Camera Raw Chapter 3 089

* 2

Microsoft Word - 6.DOC

<4D F736F F D B0D3B77EC3FEA7DEC3C0C476C1C9A5BFA6A1B8D5C3442DB57BA6A1B35DAD702DBEC7ACEC2E646F6378>

計算機程式及實習 期末報告

使用手冊

untitled

05 CHAPTER Information.IsNumeric ( ) Information.IsDate ( ) True False Date Date True False Y Y Information.IsArray ( ) True False Y Information.IsErr

05855BB07.indd

封面-12

Microsoft Word - ch06.doc

05322AR12.indd

Microsoft PowerPoint - SAGE 2010

Microsoft PowerPoint - VB7


ACI pdf

縣 94 學年度 上 學期 區 國民中學 Q 年級 R 領域教學計畫表 設計者:

Microsoft Word - 投影片ch11

Microsoft Word - ACL chapter00a-1ed .doc

Transcription:

3 Visual Basic 控制項 智慧型手機的功能日益強大, 不論是哪一種廠牌的手機, 都會提供用來顯示運作狀態的螢幕 用來拍照或攝影的鏡頭, 以及供使用者撥號的按鍵等 視窗應用程式也有類似之處, 通常都會提供可與使用者互動的元件, 例如操控程式執行的按鈕 提示操作的標籤文字 等控制項, 可用來佈建使用者介面 你曾注意到人氣超高的遊戲軟體 ( 如神魔之塔 ), 多半都提供操作簡易的使用者介面嗎? 使用者介面設計的優劣, 常會大大影響使用者對軟體程式的評價 本章內容將引導同學們利用控制項學會設計親和性高的使用者介面 3-1 控制項的特徵與功能 3-1.1 屬性 3-1.2 事件 3-1.3 方法 3-2 基本控制項 3-2.1 Form( 表單 ) 3-2.2 Label( 標籤 ) 3-2.3 Button( 按鈕 ) 3-2.4 TextBox( 文字方塊 )

88 程式語言與設計 -Visual Basic Ⅰ 3-1 控制項的特徵與功能 視窗是視窗應用程式的工作區域, 它是由許多不同視窗元件所組成 Visual Basic 對這些視窗元件 ( 包含視窗本身 ) 都是以控制項 (control object, 簡稱 control) 來稱呼 若將日常生活中的電視機對照前述的視窗 ( 程式 ), 電視機也是由許多不同的元件所組成 ; 對電視機來說, 它的組成元件 ( 例如面板 按鈕 等 ) 都是 控制項 ( 圖 3-1) 視窗本身和視窗元件都是控制項 電視機組成元件可視為控制項 外框 vs. 機身 主畫面 vs. 螢幕 按鈕 視窗應用程式 ( 以 Media Player 為例 ) 電視機 圖 3-1 視窗應用程式與電視機的對照 控制項是.NET 平台上所內建的基礎類別, 可用來供程式設計者完成視窗外觀 的設計 若這些控制項不能完全滿足程式的需求, 程式設計者可以在程式設計階 段中, 利用繼承既有的控制項類別, 來建立符合程式需求的自訂控制項 Visual Basic 的工具箱 ( 圖 3-2) 中放置了許多控制項 ( 預設有 66 種控制 項 ), 為了方便使用者選用,Visual Basic 將控制項依功能歸類為以下 9 類不同的 群組 : 通用控制項 : 收錄設計視窗應用程式畫面常用的控制項 容器 : 收錄的控制項可用來分組管理相關控制項 功能表與工具列 : 收錄用來建立功能表列 狀態列 工具提示 等控制項

第 3 章 Visual Basic 控制項 89 相關控制項 項 項 夾瀏覽 字型設定 等交談窗的控制項 用程式之使用者介面的控制項 控制項依功能分別歸納於不同的群組 料 : 收錄用來顯示與連結資料表內容的 元件 : 收錄用來存取系統資源的相關控制 列印 : 收錄用來處理列印工作的相關控制 對話方塊 : 收錄用來顯示色彩設定 資料 WPF 互通性 : 收錄用來設計 Windows 應 Visual Basic 控制項的特徵與功能是由屬性 (property) 事件(event) 及方法 (method) 等 3 種要素所決定, 分別說明如下 3-1.1 屬性 在 Visual Basic 中, 控制項的屬性是指其所具有的性質或特性 ; 以電視機為例, 電視機本身就有尺寸 標籤 顏色 等屬性 程式設計者可視需要建立控制項, 並設定其屬性, 以改變控制項的外觀 大小 顏色 樣式 等 設定或改變控制項屬性的方法有以下 2 種 : 圖 3-2 Visual Basic 工具箱提供的控制項

90 程式語言與設計 -Visual Basic Ⅰ 利用屬性視窗 : 選取控制項後, 在屬性視窗中, 更改屬性的設定值 ( 圖 3-3) 這種設定方法的優點是可立即看到屬性設定後的結果 若控制項的屬性值在設計階段即已確定, 適合採用此種方法來設定 1 1 選取控制項 ( 例如 Button1) 按鈕的標題 (Text) 屬性改變前 2 2 更改屬性設定值, 例如將 Button1 控制項的 Text 屬性設定值改為 " 輸入資料 " 按鈕的標題 (Text) 屬性改變後 圖 3-3 利用屬性視窗設定或改變控制項的屬性 透過程式敘述 : 利用程式碼來設定控制項的屬性 這種設定方法的優點是可 在程式執行的過程中, 依照實際需求, 彈性地調整屬性設定值 若控制項的屬性值需隨著程式的執行而改變, 適合採用此種方法來設定 語法 & 舉例 控制項名稱. 屬性 = 設定值 Button1.Text = " 確定 " Label1.Text = " 姓名 :"

馬 (A) 工具箱 (B) 工作清單 (C) 方案總管 (D) 即時運算視窗 第 3 章 Visual Basic 控制項 91 下表 3-1 是利用程式敘述及屬性視窗來設定控制項屬性的對照表 表 3-1 利用程式敘述及屬性視窗來設定或改變控制項屬性的對照表 程式敘述設定法 屬性視窗設定法 控制項名稱 屬性 Label1.Text = " 姓名 :" 設定值 Tip 在 Visual Basic 中, 某些控制項的屬性只能利用程式敘述的方式來取得或設定, 例如要取得使用者在下拉式方塊中點選了第幾個選項, 就必須利用程式敘述來存取此控制項的 SelectedIndex 屬性設定值 練習 ( )1. 在物件導向程式語言中, 用於描述物件外觀 大小 位置等的特徵值, 稱之為何? (A) 方法 (B) 繼承 (C) 屬性 (D) 封裝 統測 ( )2. 在 Visual Basic 中, 如果要改變標籤控制項 (Label) 上的標題文字 (Text), 則我們應該使用下列哪一個視窗? (A) 屬性視窗 (B) 方案總管視窗 (C) 即時運算視窗 (D) 監看視窗 統測 ( )3. 在 Visual Basic 的工作環境中, 可利用下列何者來佈建表單上的控制項?

92 程式語言與設計 -Visual Basic Ⅰ 3-1.2 事件 在 Visual Basic 中, 控制項的事件是指發生在控制項上的動作, 例如使用者將指標移到按鈕控制項上, 並按滑鼠左鍵一下時,Visual Basic 即會偵測到這個動作, 產生一個 Click 事件 以看電視為例, 當我們按下遙控器的選台鈕時, 電視機會接收到使用者切換頻道的訊息 ( 事件 ), 並進行轉台 使用者加諸在控制項上的動作, 可能會引發一連串的事件, 而這些事件引發的順序也有一定的規則 例如在表單上按滑鼠左鍵二下時, 會依序引發如圖 3-4 所示的多個事件 ; 其中 DoubleClick 事件特別以凸起的樣式來呈現, 表示程式設計者已在該事件的程序中, 撰寫了對應的程式碼, 因此當 DoubleClick 事件引發時,Visual Basic 會進入此事件的程序, 執行該段程式碼 圖 3-4 使用者加諸在表單 的動作與事件被引發的示意圖 事件的類型 事件按其產生的來源, 可概分為以下 3 類 : 1. 滑鼠事件 (mouse event): 使用者操控滑鼠所引起的事件, 例如 Click( 按一下滑鼠左鍵 ) 事件 2. 鍵盤事件 (key event): 使用者按下鍵盤上的按鍵所引起的事件, 例如 KeyDown ( 按下鍵盤按鈕 ) 事件 3. 系統事件 (system event): 作業系統及程式間接引發的事件, 例如程式執行時, 載入表單所引發的 Load( 載入 ) 事件

第 3 章 Visual Basic 控制項 93 事件程序 在 Visual Basic 中, 要使程式對某個事件有所反應, 意即啟動一段程式碼執行特定的工作, 必須在程式碼視窗中撰寫與事件相對應的程式碼 這些當事件發生時所要執行的程式碼稱為事件程序 (event procedure) 由事件程序的第一行敘述, 可判斷該事件程序是用來處理哪些控制項的事件 例如圖 3-5( 上 ) 的事件程序中, 由第一行最後面的 Handles Button1.Click, 可得知該事件程序是用來 處理(Handles) 按鈕的 Click 事件 當我們在按鈕上按滑鼠左鍵一下, 就會執行此事件程序的內容 ( 即在文字方塊中顯示文字 ), 如圖 3-5( 下 ) 所示 事件程序 註事件程序的名稱 由此可知本事件程序是在 Button1 的 Click 事件發生時執行 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click TextBox1.Text = " 按鈕被按下了!" End Sub ( 內文範例 "ch3-1a.sln") 執行結果 按鈕被按下後, 文字方塊會顯示此行文字 圖 3-5 事件程序的說明範例 Tip 在 Visual Basic 2015 中, 同一個事件程序可用來處理多個控制項的事件 假設事件程序的第一行最後面為 Handles Button1.Click, Button2.Click, 即表示該事件程序是用來處理 Button1 與 Button2 等 2 個控制項的 Click 事件 在 Visual Basic 中, 程式碼就是以一個事件對應一個程序的方式來設計 當某一事件發生時, 事件程序中的程式碼就會被驅動起來執行, 因此, 我們稱 Visual Basic 具有事件驅動 (event driven) 的特性 註 : VB 事件程序名稱預設為 " 控制項名稱 _ 事件名稱 ", 我們可依事件程序的功能, 自行更改程序的名稱

94 程式語言與設計 -Visual Basic Ⅰ 當我們要撰寫事件程序時, 必須先開啟程式碼視窗, 並切換到對應的控制項 選項及事件選項後, 才能開始撰寫該事件的程式碼 ( 圖 3-6) 1 雙按控制項, 或在方案總管視窗中選取專案名稱, 再按檢視程式碼鈕, 開啟程式碼視窗 2 選取控制項 ( 例如按鈕 ) 3 選擇事件名稱 ( 例如 Click) 程式碼的撰寫區域 圖 3-6 設計 Button1_Click 事件程序的示意圖 事件程序中的引數資料 每個事件程序通常預設有一些引數 ( 或稱參數,parameter) 資料, 這些引數會傳回事件發生時的狀態資訊 在控制項的事件程序中, 有 sender 及 e 兩個引數 ( 圖 3-7) 說明如下 : sender: 資料型別為 Object, 會傳回引發該事件的控制項種類及名稱 e: 資料型別為 EventArgs, 會傳回該事件的相關資訊, 如操控滑鼠 按下鍵盤按鍵等資訊 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load End Sub 圖 3-7 事件程序 的引數 料 以下將以圖 3-8 的範例程式, 來說明引數 sender 與 e

馬 (A)KeyDown (B)Click (C)Load (D)DoubleClick 第 3 章 Visual Basic 控制項 95 程式 A Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim d1, d2 As String d1 = sender.tostring() ' 以字串型別傳回控制項的類型及 稱 B C End Sub MsgBox(d1) d2 = e.tostring() ' 以字串型別傳回所引發的事件類型 MsgBox(d2) 執行結果 ( 內文範例 "ch3-1b.sln") A 當使用者在測試鈕上單按時, 即會引發測試鈕 (Button1) 的 Click 事件 B 引數 sender 會傳回 "System. Windows.Forms.Button" 及 "Text: 測試 " 兩項資訊, 前者表示引發 Click 事件的控制項種類為按鈕 (Button), 且該按鈕的名稱為 " 測試 " 圖 3-8 引數 sender 及 e 的說明範例 C 引數 e 則傳回 "System. Windows.Forms. MouseEventArgs" 資訊, 表示 Click 事件的引發是由使用者操控滑鼠所引起 練習 ( )1. 一般的飲料販賣機, 當消費者輸入飲料編號並按下確定鈕後, 機器手臂便會移動到該飲料編號所對應的儲物格, 來抓取飲料 假設飲料販賣機是以 Visual Basic 程式來控制它的運作, 請問應該在下列哪一個事件中撰寫控制機器手臂移動的程式碼? (A) 按下確定鈕 (B) 投入硬幣 (C) 輸入飲料編號 (D) 按下取消鈕 ( )2. 當事件發生時所要執行的程式碼, 稱為 (A) 事件驅動 (B) 控制項 (C) 屬性 (D) 事件程序 ( )3. 下列哪一個是使用者按下鍵盤上的按鍵所引發的事件?

96 程式語言與設計 -Visual Basic Ⅰ 3-1.3 方法 在 Visual Basic 中, 控制項的方法是指內建在控制項中的程序 ( 即一段具有特定功能的程式敘述 ), 當我們在程式敘述中, 使用某一種控制項的方法時, 內建在該控制項的程序就會被啟動執行, 以完成某項特定的工作 再以看電視為例, 當我們按轉台鈕時, 內建在電視機的轉台電路會被啟動執行 ; 這個轉台電路就相當於 Visual Basic 控制項的方法 控制項方法的使用如下 : 語法 & 舉例控制項名稱. 方法參數資料 SetDesktopLocation(200, 100) ' 設定表單本身在螢幕 (200, 100) 的座標處顯示 或 Me.SetDesktopLocation(200, 100) 說明 : 在表單 ( 例如 Form1) 中使用表單本身所提供的方法時, 可使用 "Me" 關鍵字來註替代表單名稱, 也可省略 圖 3-9 是表單控制項之 Hide() 及 Show() 方法的使用範例, 當我們按下按鈕, 即會隱藏 Form1 並顯示 Form2, 其執行結果如圖 3-9( 下 ) 程式 本書在說明程式語法時, 會將事件程序中引數 sender 及 e 的相關敘述, 用 " " 簡化表示, 以突顯要說明的程式內容 Private Sub Button1_Click( ) Handles Button1.Click Hide() ' 隱藏表單 Form2.Show() ' 顯示表單 Form2 End Sub ( 內文範例 "ch3-1c.sln") 執行結果 圖 3-9 使用 Hide() 及 Show() 方法的說明範例 Tip 選按 專案 / 加入 Windows Form 選項, 點選 Windows Form, 按新增鈕, 即可在專案中新增一個表單 (Form) 註 : 在 Visual Basic 2010 中使用表單本身所提供的方法時, 須使用 "Me" 關鍵字來替代表單名稱, 不可省略

第 3 章 Visual Basic 控制項 97 機實作 查閱控制項的屬性 事件及方法的說明 想瞭解控制項的屬性 事件及方法嗎? 善用 MSDN Library(Microsoft Developer Network Library) 網站即可查得控制項的相關資訊 以下將以按鈕(Button) 控制項的 DoulbeClick() 事件為例, 讓同學學會如何透過 MSDN Libray 網站來查詢資訊 1 啟動 Visual Basic 程式, 建立一個視窗應用程式類型的新專案 2 按工具箱標籤, 展開工具箱 3 點選 Button 控制項, 按鍵,Visual Basic 會自動開啟瀏覽器, 並連上 MSDN Library 網站 中介紹 Button 控制項的頁面 分別按此兩個超連結可查詢與 Button 有關的方法與屬性 4 按超連結文字 "Button 事件 ", 檢視與 Button 有關的事件 5 按超連結文字 "Double Click 事件 ", 右側窗格會顯示此事件的相關資訊

98 程式語言與設計 -Visual Basic Ⅰ 3-1 練習 一 選擇題 ( )1. 在 Visual Basic 中, 使用表單的哪一個方法, 可將表單隱藏起來? (A)Show() (B)Hide() (C)Close() (D)SetDesktopLocation() ( )2. 在表單上連按滑鼠左鍵二下, 可顯示特定訊息文字, 在此敘述中, 何者為表單的事件? (A) 表單 (B) 連按滑鼠左鍵二下 (C) 顯示特定訊息文字 (D) 滑鼠 ( )3. 下列哪項 Visual Basic 程式設計敘述為誤? (A)Visual Basic 是利用以物件為基礎的方式做程式設計 (B)Visual Basic 中所有物件皆有屬性設定, 可以利用屬性視窗與程式碼作物件狀態之修改 (C)Visual Basic 中所有物件所有可能發生之事件皆相同 (D)Visual Basic 中發生某事件, 必須在發生事件之物件內尋找對應之方法以程式碼執行之 技競 ( )4. 欲使用 Visual Basic 的程式敘述來設定控制項之屬性, 其語法為下列何者? (A) 控制項名稱. 控制項的屬性 = 設定值 (B) 控制項名稱 _ 控制項的屬性 = 設定值 (C) 控制項名稱 - 控制項的屬性 = 設定值 (D) 控制項名稱 = 控制項的屬性. 設定值 ( )5. 在 Visual Basic 中, 下列何者是指可被控制項識別的動作? (A) 屬性 (B) 方法 (C) 事件 (D) 事件程序 ( )6. 利用 Visual Basic 來撰寫一個圖書館借閱系統, 在佈建表單畫面時, 如果希望某個按鈕控制項顯示文字 " 查詢 ", 應該要設定該按鈕控制項的哪一個屬性值? (A)Value (B)Name (C)Text (D)Size ( )7. 下列何者是 Visual Basic 內建於控制項的程序, 可供使用者直接引用, 以完成某項特定的工作? (A) 方法 (B) 事件 (C) 屬性 (D) 類別 ( )8. 在 Visual Basic 中, 若有一段事件程序是以 Private Sub Button1_Click( ) Handles Button2.Click 開頭, 請問程式執行後需進行下列哪一項操作, 才能執行該事件程序? (A) 雙按 Button2 (B) 單按 Button2 (C) 雙按 Button1 (D) 單按 Button1 ( )9. Visual Basic 的工具箱中提供了許多控制項, 可供使用者選用, 請問這些控制項的主要用途為何? (A) 佈建視窗外觀 (B) 撰寫程式 (C) 管理方案與專案 (D) 顯示程式的相關資訊

第 3 章 Visual Basic 控制項 99 ( )10. 在 Visual Basic 中, 當某一事件發生時, 事件程序中的程式碼就會被執行的特 性, 稱為 (A) 事件程序 (B) 事件驅動 (C) 事件偶發 (D) 事件集合 二 實作題 1. 練習在表單上佈建 1 個按鈕 (Button1) 控制項, 然後利用屬性視窗將其 Text 屬性 設為 " 確定 " 2. 延續上題, 若要改以程式敘述來設定 Button1 的 Text 屬性, 則程式敘述應如何撰 寫? 3-2 基本控制項 Visual Basic 的控制項是程式設計者在設計使用者介面時, 所需使用的元 件 每一個控制項都有其特定的功能與適用的場合 本節中將介紹程式視窗設計 時, 經常須使用的 4 種控制項 : Form( 表單 ) Label( 標籤 ) Button( 按鈕 ) TextBox( 文字方塊 ) 其餘常用控制項 ( 如下 ), 將在本章之後的程式設計實例中, 搭配程式設計 實例的主題陸續介紹 RadioButton( 選項按鈕 ) CheckBox( 核取方塊 ) GroupBox( 群組方塊 ) Timer( 計時器 ) ComboBox( 下拉式方塊 ) ListBox( 清單 ) PictureBox( 圖片方塊 )

100 程式語言與設計 -Visual Basic Ⅰ 3-2.1 Form( 表單 ) Form( 表單 ) 是用來佈建控制項的平台, 常被用來作為視窗程式的主畫面或 交談窗 ( 圖 3-10) Form( 表單 ) 表單中佈建了多個 Button ( 按鈕 ) 控制項 TextBox( 文字方塊 ) 控制項 圖 3-10 表單常被用來作為視窗程式的主畫面或交談窗 表單常用屬性 圖 3-11 是 Form( 表單 ) 控制項的常用屬性說明 Name( 名字 ): 表單的名稱, 預設值為 Form1 所有控制項都有此屬性 BackColor( 背景色彩 ): 表單的背景色 Opacity( 透明度 ): 表單的透明度, 預設為 100%, 表示不透明 Size( 尺寸 ): 表單的大小, 單位為像素 ; 預設值為 300, 300 Text( 文字 ): 表單標題列的文字, 預設值為 Form1, 例如 : 圖 3-11 Form( 表單 ) 控制項的常用屬性說明

(3) 將 Size 屬性設為 250, 150 馬第 3 章 Visual Basic 控制項 101 練習 1. 建立 "ans3-2a.sln" 新專案, 請利用屬性視窗, 練習設定表單的屬性 (1) 將 Text 屬性設為 " 表單一 " (2) 將 BackColor 屬性設為橘色 (255, 192, 128) 成果預覽 : 表單常用方法 表 3-2 是 Form( 表單 ) 控制項的常用方法說明 表 3-2 Form( 表單 ) 控制項的常用方法說明 方法 Close Hide SetDesktopLocation Show 說明關閉表單隱藏表單設定表單在螢幕的顯示位置顯示表單 表單常用事件 表 3-3 是 Form( 表單 ) 控制項的常用事件說明 表 3-3 Form( 表單 ) 控制項的常用事件說明 事件 Activated Click DoubleClick Load Paint Shown 說明 當表單成為 作用中 的視窗時發生 當使用者在表單上按滑鼠左鍵一下時發生 當使用者在表單上按滑鼠左鍵二下時發生 ; 若 Click 及 DoubleClick 事件皆有撰寫對應的程式碼, 則 DoubleClick 事件會連動引發 Click 事件, 而且 Click 事件會比 DoubleClick 事件先發生 當表單 第 1 次載入, 準備顯示在螢幕前發生 ; 我們可在此事件中撰寫顯示表單前需完成的工作 系統重新繪製表單畫面時發生 ; 為了避免利用程式所繪製的圖形因縮放表單或表單被其他表單覆蓋後再移開, 造成圖形消失, 可將繪圖的程式敘述撰寫在 Paint 事件中, 即可避免上述情形發生 當表單 第 1 次顯示 在螢幕時發生 ; 一般常在此事件中撰寫設定表單畫面初始化的程式敘述

102 程式語言與設計 -Visual Basic Ⅰ 程式執行時, 首次載入表單, 便會引發 Load 事件, 當表單成為作用中視窗 ( 顯示在桌面的最上層 ), 則會引發 Activated 事件, 且在表單 第一次 顯示 時, 會再引發 Shown 事件 若 Visual Basic 程式專案只包含 1 個表單, 且表單的 Load Activated 及 Shown 事件中, 皆有撰寫對應的程式碼, 則當程式執行時, 將會依照以下順序來 執行對應的事件程序 :Load Activated Shown 表單範例 - 改變表單背景色 ( 內文範例 "ch3-2a.sln") 範例說明 : 依照使用者在表單上按滑鼠左鍵一下 (Click) 或二下 (Double Click), 來改變表單的背景顏色 按一下背景顏色改為青色 ; 按二下背景顏色改為藍色 ( 圖 3-12) 單按 雙按 表單的背景色會改為青色 先引發 Click 事件, 將表單的背景色改為青色 ; 再引發 DoubleClick 事件, 將表單的背景色改為藍色 圖 3-12 表單範例的執行結果

第 3 章 Visual Basic 控制項 103 佈建控制項及設定屬性 : 設定 Form1 的 Text 屬性為 " 改變表單背景色 " 撰写程式碼 : 1. 在表單的 Click 事件中, 利用 Visual Basic 內建的色彩常數 ( 表 3-4), 設 定 BackColor 屬性為 "Color.Cyan"( 青色 ) 2. 在表單的 DoubleClick 事件中, 設定 BackColor 屬性為 "Color.Blue" ( 藍色 ) 表 3-4 常用的 VB 內建色彩常數 色彩常數 說明 色彩常數 說明 Color.Black 黑色 Color.Magenta 紫色 Color.Blue 藍色 Color.Orange 橙色 Color.Cyan 青色 Color.Pink 粉紅色 Color.DarkBlue 深藍色 Color.Red 紅色 Color.Gray 灰色 Color.White 白色 Color.Green 綠色 Color.Yellow 黃色 程式 Public Class Form1 Private Sub Form1_Click( ) Handles Me.Click BackColor = Color.Cyan ' 將表單本身背景色更改為青色 End Sub Private Sub Form1_DoubleClick( ) Handles Me.DoubleClick BackColor = Color.Blue ' 將表單本身背景色更改為藍色 End Sub End Class Tip 在表單 ( 如 Form1) 的任一事件中, 欲更改本身的屬性時, 可用 "Me" 關鍵字來代替表單名稱, 也可省略

馬 104 程式語言與設計 -Visual Basic Ⅰ 練習 ( )1. 表單的哪一個方法可以用來關閉表單本身? (A)Close (B)Hide (C)Show (D)Focus ( )2. 若某一個 Visual Basic 程式中, 包含有 1Form1_Load 2Form1_Activated 3Form1_Click 等 3 個事件程序 當使用者按下 開始 鈕執行程式, 並在表單上按滑鼠左鍵一下時, 上述 3 個事件程序的執行順序為何? (A)123 (B)321 (C)132 (D)213 ( )3. 執行如下所示的 Visual Basic 程式, 在雙按表單後, 表單標題列的文字會更改為 (A)Click (B)Visual Basic (C)VB (D)DoubleClick Private Sub Form1_Click( ) Handles Me.Click Text = "Click" End Sub Private Sub Form1_DoubleClick( ) Handles Me.DoubleClick Text = "DoubleClick" End Sub Private Sub Form1_Load( ) Handles MyBase.Load Text = "VB" End Sub Private Sub Form1_Shown( ) Handles Me.Shown Text = "Visual Basic" End Sub 3-2.2 Label( 標籤 ) Label( 標籤 ) 可做為表單上顯示操作說明或提示文字的控制項 例如圖 3-13 所示的 Word 尋找及取 交談窗中, 尋找目標標籤便是 1 個用來提示使用者輸入資料的文字

第 3 章 Visual Basic 控制項 105 Label( 標籤 ) 控制項 圖 3-13 尋找及取 交談窗 的 Label( 標籤 ) 控制項 標籤常用屬性 圖 3-14 是 Label( 標籤 ) 控制項的常用屬性說明 AutoSize( 自動調整大小 ): 標籤大小是否隨標籤文字的字數及字型大小自動調整,True 為自動調整 ( 預設值 );False 為不自動調整 BackColor( 背景色彩 ): 標籤的背景色 ForeColor( 前景色彩 ): 標籤文字的色彩 Location( 位置 ): 標籤在表單上的位置 Size( 尺寸 ): 標籤的大小, 單位為像素 Text( 文字 ): 標籤上所要顯示的文字, 預設值為 Label1 TextAlign( 對齊方式 ): 標籤文字的對齊方式, 預設值為 TopLeft 靠左上對齊 (TopLeft) 正中央對齊 (MiddleCenter) 靠右下對齊 (BottomRight) 圖 3-14 Label( 標籤 ) 控制項的常用屬性說明 Visible( 顯示 ): 標籤的顯示狀態,True 為顯示 ( 預設值 ),False 為隱藏

馬 106 程式語言與設計 -Visual Basic Ⅰ 練習 1. 建立 "ans3-2b.sln" 新專案, 在表單上佈建 2 個標籤 (Label1 Label2) 控制項, 並利用屬性視窗練習設定標籤的屬性 (1) 將 Label1 及 Label2 的 Text 屬性分別設為 " 姓名 " 及 " 學號 " (2) 將 Label1 及 Label2 的 Font 屬性中之大小設為 14 (3) 將 Label1 的 BackColor 屬性設為橙色 (Orange) (4) 將 Label2 的 ForeColor 屬性設為深藍色 (DarkBlue) 成果預覽 : Label1 Label2 標籤範例 - 井字遊戲 ( 內文範例 "ch3-2b.sln") 範例說明 : 使用 9 個標籤控制項來顯示井字遊戲中的 O 或 X 當使用者在標籤 上按滑鼠左鍵一下 (Click) 時, 標籤顯示 O; 當使用者在標籤上連按滑鼠左鍵二下 (DoubleClick) 時, 標籤顯示 X( 圖 3-15) 在任一標籤上單按, 會顯示 O 在任一標籤上雙按, 會顯示 X 圖 3-15 標籤範例的執行結果

第 3 章 Visual Basic 控制項 107 佈建控制項及設定屬性 : 1. 在表單上佈建 9 個 Label( 標籤 ) 控制項 ( 圖 3-16) Tip Label1~Label9 所需設定的屬性皆相同, 建議先建立一個 Label 控制項, 並將其屬性設定好後, 再利用複製及貼上, 複製出 Label2~Label9 等控制項 圖 3-16 標籤範例的表單佈建畫面 2. 同時選取 Label1 ~ Label9 控制項, 在屬性視窗中, 點選 Font; 並按 鈕, 在開啟的字型交談窗, 設定這些控制項的字型樣式為 " 粗體 " 大小為 "36" 3. 依下表設定控制項的相關屬性 表 3-5 標籤範例的屬性設定 控制項名稱屬性設定值 Form1 Text 井字遊戲 AutoSize False Label1 ~ Label9 BackColor 註 White Size 60, 60 Text ( 空白 ) 撰写程式碼 : 1. 在 Label1 的 Click 事件中, 設定 Label1 控制項的 Text 屬性值為 "O" 2. 在 Label1 的 DoubleClick 事件中, 設定 Label1 控制項的 Text 屬性值為 "X" 註 : 在屬性視窗中, 點選 BackColor, 按下拉式方塊後, 切換至 Web 標籤, 即可選取 White 選項

(A)TextAlign (B)ForeColor (C)Text (D)Font 馬108 程式語言與設計 -Visual Basic Ⅰ 3. 參照上述說明, 在其他標籤 (Label2 ~ Label9) 的 Click 事件中, 設定控制項的 Text 屬性值為 "O";DoubleClick 事件中, 設定控制項的 Text 屬性值為 "X" 程式 Private Sub Label1_Click( ) Handles Label1.Click Label1.Text = "O" End Sub Private Sub Label1_DoubleClick( ) Handles Label1.DoubleClick Label1.Text = "X" End Sub Private Sub Label9_Click( ) Handles Label9.Click Label9.Text = "O" End Sub Private Sub Label9_DoubleClick( ) Handles Label9.DoubleClick Label9.Text = "X" End Sub Tip 井字遊戲若加入選擇結構 ( 如第 5 章將說明的 If Then 敘述 ), 即可判斷 O 或 X 是否連成一線 練習 ( )1. 下列哪一種控制項, 常用來放置引導使用者操作的提示文字? (A) 按鈕 (B) 標籤 (C) 表單 (D) 框架 ( )2. 設定下列哪一個屬性, 可以改變標籤的背景色彩? (A)BackColor (B)AutoSize (C)Font (D)ForeColor ( )3. 設定下列哪一個屬性, 可以改變標籤中的文字對齊方式?

第 3 章 Visual Basic 控制項 109 3-2.3 Button( 按鈕 ) Button( 按鈕 ) 是用來操控程式運作的控制項, 例如圖 3-17 所示的刪除檔案交談窗中, 有是 否等 2 個可供使用者操控的按鈕控制項 ; 當使用者按下是鈕時, 可將檔案移至資源回收筒 Button( 按鈕 ) 控制項 圖 3-17 刪除檔案交談窗 的 Button( 按鈕 ) 控制項 按鈕常用屬性 圖 3-18 是 Button( 按鈕 ) 控制項的常用屬性說明 Enabled( 有效 ): 按鈕的有效狀態,True 為可使用 ( 預設值 );False 則為不可使用 可使用的狀態 不可使用的狀態 Font( 字型 ): 顯示在按鈕上的文字字型, 預設值為新細明體, 9pt Location( 位置 ): 按鈕在表單上的位置 TabIndex( 停駐索引 ): 游標停駐在表單上之控制項的優先順序, 起始值為 0 所有控制項皆有此屬性 Text( 文字 ): 按鈕的標題文字, 預設值為 Button1, 例如 圖 3-18 Button( 按鈕 ) 控制項的常用屬性說明

馬 110 程式語言與設計 -Visual Basic Ⅰ 快速鍵的設定 一般的視窗程式通常都會提供快速鍵, 方便使用者快速下達相關的操作指令, 例如 Word 開啟舊檔交談窗中 ( 圖 3-19) 的開啟鈕即設有快速鍵 ; 使用者可按開啟鈕, 或按 + 鍵, 來開啟選取的檔案 設有快速鍵功能的按鈕 圖 3-19 Word 開啟舊檔交談窗 在 Visual Basic 中, 我們也可以為按鈕控制項設定快速鍵, 只要在按鈕控制項的 Text 屬性中加上 "(& 快速鍵代號 )" 文字, 即可完成快速鍵的設定 例如要佈建一個如上圖所示的開啟鈕, 可在屬性視窗中, 將該按鈕控制項的 Text 屬性設定為 " 開啟 (&O)" 練習 1. 建立 "ans3-2c.sln" 新專案, 在表單上佈建 2 個按鈕 (Button1 Button2) 控制項, 並利用屬性視窗練習設定按鈕的屬性 (1) 將 Button1 及 Button2 的 Text 屬性分別設為 " 輸入 " 及 " 輸出 " (2) 將 Button1 的 Font 屬性中之字型樣式設為粗體 大小設為 14 (3) 將 Button2 的 Enabled 屬性設為 False 成果預覽 : Button1 Button2

第 3 章 Visual Basic 控制項 111 2. 建立 "ans3-2d.sln" 新專案, 在表單上佈建 2 個按鈕 (Button1 Button2) 控制 項, 並依照下面的步驟說明進行相關的操作 : (1) 按開始鈕, 執行程式, 然後按 鈕觀察游標停駐在 2 個按鈕上的優 先順序 (2) 按停止偵錯鈕, 結束程式的執行, 將 Button1 及 Button2 的 TabIndex 屬性分 別修改為 1 與 0 (3) 參照步驟 1, 再次觀察游標停駐在 2 個按鈕上的優先順序 按鈕常用事件 - Click 當程式設計者希望使用者在按下按鈕時, 能夠執行特定的工作, 可將對應該工作的程式碼撰寫在按鈕的 Click 事件中 以圖 3-20 的 Word 插入圖片交談窗為例, 程式設計者需將具有插入圖片功能的程式撰寫在插入鈕的 Click 事件中, 才能在使用者按下插入鈕時發生作用 程式設計者需在每一個按鈕的 Click 事件中, 撰寫對應的程式碼, 才能讓使用者透過不同的按鈕來操控程式的運作 圖 3-20 Button( 按鈕 ) 的 Click 事件實例

112 程式語言與設計 -Visual Basic Ⅰ 按鈕範例 - 遙控車 ( 內文範例 "ch3-2c.sln") 範例說明 : 使用 2 個按鈕控制項讓使用者控制標籤 (Label1) 移動 當使用 者按下往左鈕, 車子會往左移動 ; 當使用者按下往右鈕, 車子則會往右移動 ( 圖 3-21) 每按一次往右鈕, 遙控車就會往右移動 圖 3-21 按鈕範例的執行結果 佈建控制項及設定屬性 : 1. 在表單上佈建 2 個 Button( 按鈕 ) 控制項及 1 個 Label( 標籤 ) 控制項 ( 圖 3-22) Tip 選取佈建在表單中的 Button( 按鈕 ) 控制項, 會出現 8 個控制點, 供程式設計者調整其大小 圖 3-22 按鈕範例的表單佈建畫面 2. 選取 Label1 控制項, 在屬性視窗中, 點選 Font, 並按鈕 ; 在開啟的字 型交談窗, 設定 Label1 控制項的字型為 "Webdings" 大小為 "36"

第 3 章 Visual Basic 控制項 113 3. 依下表設定控制項的相關屬性 表 3-6 按鈕範例的屬性設定 控制項名稱屬性設定值 Button1 Text 往左 Button2 Text 往右 Button1 Button2 Size 75, 35 AutoSize False Label1 Size 60, 50 Text h TextAlign TopCenter Tip 將 Label1 的字型設定為 "Webdings", 當其 Text 屬性被設定為不同的英文字母時, 會顯示對應的圖案, 例如設定字母 "h" 即會顯示車子圖案 撰写程式碼 : 1. 在往左鈕 (Button1) 的 Click 事件中, 設定車子 (Label1) 往左移動 10 像素 2. 在往右鈕 (Button2) 的 Click 事件中, 設定車子 (Label1) 往右移動 10 像素 程式 Private Sub Button1_Click( ) Handles Button1.Click Label1.Left = Label1.Left - 10 End Sub Private Sub Button2_Click( ) Handles Button2.Click Label1.Left = Label1.Left + 10 End Sub 舉㆒反㆔ : 若要增加往上 往下按鈕, 以控制車子 (Label1) 往上或往下移動, 上述程式應如何修改?( 提示 : 更改 Label 控制項位置的程式敘述為 "Label1.Top ± 數值 ")

(A)Name (B)Text (C)Enabled (D)Location 馬114 程式語言與設計 -Visual Basic Ⅰ 練習 ( )1. 設計 Visual Basic 程式時, 若在表單上建立按鈕物件, 則該按鈕物件至多會出現多少個控制點, 供程式設計師拖曳以調整按鈕物件的大小? (A)2 (B)4 (C)6 (D)8 統測 ( )2. 在 Visual Basic 程式設計中, 為了讓使用者能操控程式的運作, 通常我們會在表單上佈建哪一種控制項? (A) 按鈕 (B) 標籤 (C) 文字方塊 (D) 核取方塊 ( )3. 設定下列哪一個屬性, 可以改變按鈕控制項上所顯示的文字? 3-2.4 TextBox( 文字方塊 ) TextBox( 文字方塊 ) 是專門用來供使用者輸入資料的控制項 在視窗程式中, 我們經常使用它來作為使用者輸入資料的區域, 以便將相關資料傳送到程式中處理或儲存 例如, 圖 3-23 所示的 Word 定位點交談窗中, 我們可以看到 1 個用來提供使用者輸入資料的文字方塊 TextBox( 文字方塊 ) 控制項 圖 3-23 定位點交談窗 的 TextBox( 文字方塊 ) 控制項

第 3 章 Visual Basic 控制項 115 文字方塊常用屬性 圖 3-24 是 TextBox( 文字方塊 ) 控制項的常用屬性說明 Enabled( 有效 ): 是否能輸入文字,True 為可輸入 ( 預設值 ),False 則為無法輸入 Multiline( 多行 ): 是否以多行顯示文字,True 以多行顯示 ;False 以單行顯示文字 ( 預設值 ) PasswordChar( 密碼字元 ): 將所輸入的文字改以密碼字元顯示 ReadOnly( 唯讀 ): 是否可編輯文字方塊內的文字,True 為唯讀,False 為可編輯文字 ( 預設值 ) ScrollBars( 捲軸 ): 是否要顯示捲軸,None 為無捲軸 ( 預設值 ),Horizontal 為水平捲軸, Vertical 為垂直捲軸,Both 為兩者皆有 Text( 文字 ): 文字方塊上所要顯示的文字, 預設值為空值 TextAlign( 對齊方式 ): 文字方塊中的文字對齊方式, 預設值為 Left( 靠左對齊 ) 圖 3-24 TextBox( 文字方塊 ) 控制項的常用屬性說明 文字方塊的換行 將 TextBox 控制項設定以多行顯示文字時, 在編寫程式碼常會透過字串常數 vbcrlf 來強迫文字進行換行, 但在新版 Visual Basic 2015 中, 我們可在編寫程式碼時, 直接以透過按鍵的方式, 來為文字換行 ( 圖 3-25) 圖 3-25 文字方塊換行的方法 ( 內文範例 "ch3-2d.sln") 此段程式敘述也可改成以下敘述 TextBox1.Text = " 世界盃 " & vbcrlf & " 足球賽 " & vbcrlf & " 線 看 " & vbcrlf & " 真精彩 "

字, 並觀察其變化 馬116 程式語言與設計 -Visual Basic Ⅰ 練習 1. 建立 "ans3-2e.sln" 新專案, 在表單上佈建 2 個文字方塊 (TextBox1 TextBox2) 控制項, 並利用屬性視窗設定如下的屬性 : (1) 將 TextBox1 的 Multiline 屬性設為 True,ScrollBars 屬性設為 Vertical (2) 將 TextBox2 的 PasswordChar 屬性設為 "*" (3) 按開始鈕, 進入到執行模式, 分別在 TextBox1 及 TextBox2 中輸入文 文字方塊常用方法 - Focus 當表單上佈建多個文字方塊時, 游標預設會停駐在第 1 個文字方塊上 使用文字方塊的 Focus() 方法, 可強迫將游標移至文字方塊中, 以省去使用者必須利用 滑鼠 ( 或按 鍵 ) 來移動游標位置的操作 圖 3-26 是一個使用 Focus() 方法的 範例, 當使用者按下重新輸入鈕時, 程式除了會清除文字方塊中的資料外, 還會 將游標移回第 1 個文字方塊中 按重新輸入鈕 游標移回此處 ( 內文範例 "ch3-2e.sln") 圖 3-26 Focus 方法的使用範例 ( 身分確認 )

第 3 章 Visual Basic 控制項 117 文字方塊常用事件 表 3-7 是 TextBox( 文字方塊 ) 控制項的常用事件說明 表 3-7 TextBox( 文字方塊 ) 控制項的常用事件說明 事件 GotFocus LostFocus TextChanged 說明 當游標移至文字方塊中時發生 ; 一般常在此事件中撰寫提示可輸入之資料類型 ( 例如只能輸入數字 ) 的程式敘述 當游標由文字方塊跳至另一個控制項時發生 ; 一般常在此事件中撰寫檢查輸入資料是否正確 ( 例如月份必須小於等於 12) 的程式敘述 當文字方塊內的資料被改變時發生 ; 一般常在此事件中撰寫文字方塊內的資料一被改變, 即需進行特定資料處理的程式敘述 ( 例如變更 R G B 值時, 立即顯示對應的色彩 ) 文字方塊範例 - 加法運算 ( 內文範例 "ch3-2f.sln") 範例說明 : 使用 2 個文字方塊控制項, 讓使用者輸入要進行運算的 2 個數值 按計算鈕後, 將運算結果顯示在另 1 個文字方塊控制項中 ( 圖 3-27) 輸入兩個數值後, 按計算鈕 計算出兩數的加總 佈建控制項及設定屬性 : 圖 3-27 文字方塊範例的執行結果 1. 在表單上佈建如圖 3-28 所示的控制項 TextBox1 TextBox3 TextBox2 圖 3-28 文字方塊範例的表單佈建畫面

118 程式語言與設計 -Visual Basic Ⅰ 2. 同時選取 TextBox1 ~ TextBox3 控制項, 在屬性視窗中, 點選 Font, 並按 鈕 ; 在開啟的字型交談窗, 設定這些控制項的字型樣式為 " 粗體 " 3. 依下表設定控制項的相關屬性 表 3-8 文字方塊範例的屬性設定 控制項名稱 屬性 設定值 Form1 Text 加法運算 Label1 Text + Label2 Text = Button1 Text 計算 TextBox1 ~ TextBox3 TextAlign Center TextBox3 Enabled False 撰写程式碼 : 在計算鈕 (Button1) 的 Click 事件中, 宣告程式所需使用的 變數 num1( 數值 1) num2( 數值 2) sum( 加總結果 ); 其中 num1 及 num2 是用來存放使用者在 TextBox1 及 TextBox2 中輸入的數值 1 及數值 2, sum 是用來存放 num1 及 num2 相加後的結果 程式 Private Sub Button1_Click( ) Handles Button1.Click Dim num1, num2, sum As Single num1 = TextBox1.Text num2 = TextBox2.Text sum = num1 + num2 ' 兩數相加 TextBox3.Text = sum End Sub 舉㆒反㆔ : 若要將程式改為計算兩數之差, 上述程式應如何修改? ( 提示 :sum = num1 - num2)

第 3 章 Visual Basic 控制項 119 利用程式敘述更改字型樣式的方法 如果想在程式執行的過程中, 利用程式敘述來更改控制項的字型大小, 必須透過 Font 語法來完成 語法 & 舉例 控制項名稱.Font = New Font(" 字型名稱 ", 字型大小, [ 字型樣式 ]) Label1.Font = New Font(" 新細明體 ", 20) TextBox1.Font = New Font(" 新細明體 ", 30, FontStyle.Bold) ( 內文範例 "ch3-2g.sln") 說明 1 語法中以中括號 [] 包圍的項目, 表示可省略不寫 2 字型樣式的設定, 必須以 Visual Basic 內建常數來設定 ( 如下表 ) 表 3-9 字型樣式的常數與說明 字型樣式常數 FontStyle.Bold FontStyle.Italic FontStyle.Regular FontStyle.Strikeout FontStyle.Underline 說明粗體斜體標準刪除線底線 3 若要同時設定 2 種以上的字型樣式, 常數間需以 "Or" 連接 例如要設定 Label1 控制項中的文字為粗斜體 : Label1.Font = New Font(" 新細明體 ", 30, FontStyle.Bold Or FontStyle.Italic)

(2) 三角形面積公式 :( 底 * 高 ) / 2 馬120 程式語言與設計 -Visual Basic Ⅰ 練習 ( )1. 下列哪一種控制項是用來供使用者輸入資料? (A) 表單 (B) 按鈕 (C) 標籤 (D) 文字方塊 ( )2. 設定下列哪一個屬性, 可將使用者在文字方塊中所輸入的文字, 以特定的字元 ( 如 "*") 顯示? (A)Font (B)PasswordChar (C)Text (D)TextAlign ( )3. 使用下列哪一個方法, 可將游標移至文字方塊上? (A)Focus() (B)Clear() (C)Close() (D)Hide() 4. 在 Visual Basic 中, 若要在文字方塊 (TextBox1) 中輸出 " 我的第一支程式 " 字串, 則程式敘述應撰寫為 5. 請撰寫一支 計算三角形面積 的程式 ; 建立 "ans3-2f.sln" 新專案, 設定當使用者在 TextBox1 中輸入底邊長 在 TextBox2 中輸入高度, 按 Button1 鈕, 即在 TextBox3 中顯示計算結果 成果預覽 : TextBox1 TextBox2 TextBox3 Button1 提示 : (1) 在 Button1_Click 事件中, 撰寫計算三角形面積的程式 3-2 練習 一 選擇題 ( )1. 當表單成為作用視窗時, 會引發下列哪一個事件? (A)Activated (B)Click (C)DoubleClick (D)Load ( )2. 若使用 Visual Basic 來撰寫 最受歡迎的十大明星票選 程式, 請問下列哪一個控制項最有可能用來讓受訪者填寫自己欣賞明星的理由? (A)Label (B)TextBox (C)Button (D)Form

第 3 章 Visual Basic 控制項 121 ( )3. 若希望佈建在表單中的標籤 (Label1) 控制項, 在程式執行時, 暫時不顯示, 必須設定下列哪一個屬性? (A)AutoSize (B)Visible (C)Text (D)TextAlign ( )4. 在 Visual Basic 中, 下列哪一個控制項, 可以用來提供使用者輸入文字資料, 也可以用來顯示文字資料? (A) 標籤 (Label) (B) 指令按鈕 (Button) (C) 文字方塊 (TextBox) (D) 圖片方塊 (PictureBox) 統測 ( )5. 公益彩券投注機都有提供民眾選號包牌的功能 若選號包牌的程式是以 Visual Basic 撰寫而成, 請問下列哪一個控制項最適合用來輸入民眾所要簽注包牌的 號碼? (A) 文字方塊 (B) 標籤 (C) 按鈕 (D) 核取方塊 ( )6. 表單的哪一個方法, 可用來顯示表單? (A)Close (B)SetDesktopLocation (C)Show (D)Hide ( )7. 設定表單的哪一個屬性, 可更改表單標題列的文字? (A)Text (B)Size (C)BackColor (D)Opacity ( )8. 如果在 VB 中輸入程式碼 Label1.Text = "Left", 則 Label1 控制項的屬性會發 生下列何種變化? (A) 名稱被改為 "True" (B) 標籤文字靠左對齊 (C) 標籤 文字改為 "Left" (D) 標籤文字的字型改成新細明體 ( )9. 在執行 Visual Basic 程式時, 若表單中的文字方塊 (TextBox1) 無法輸入文 字, 最可能是下列哪一種原因造成? (A) 未在程式敘述中使用 Focus() 方法 (B) 未在 TextChanged 事件中撰寫程式敘述 (C)TextBox1 的 Enabled 屬性被設定為 False (D)TextBox1 的 PasswordChar 屬性被設定為空白 ( )10. 若欲利用 Visual Basic 佈建一個如下圖所示的畫面, 請問圖中的更多鈕最適合 使用下列哪一類控制項來佈建? (A)TextBox (B)Label (C)Form (D)Button

122 程式語言與設計 -Visual Basic Ⅰ 二 多元練習題 1. 某校電算中心的老師們打算使用 Visual Basic 來合力開發 線上測驗系統, 請依照下面的情境發展來作答 : (1) 在登入系統的表單上, 應佈建哪一種控制項, 以便學生輸入學號? (2) 若在游標移至密碼欄時, 要顯示提醒學生注意密碼大 小寫的訊息, 則應在密碼欄的哪一個事件中撰寫對應的程式敘述? (3) 假設密碼欄位是以文字方塊 (TextBox) 控制項來佈建, 若希望輸入的密碼以 "*" 來呈現, 應更改密碼欄位的哪一個屬性? 2. 請撰寫一支可將攝氏溫度轉換為華氏溫度的程式 ; 建立 "ans3-2g.sln" 新專案, 並設定當使用者在 TextBox1 中輸入攝氏溫度時,TextBox2 會立即顯示對應的華氏溫度 成果預覽 : Label1 Label3 TextBox1 Label2 TextBox2 提示 : (1) 在表單上佈建 3 個 Label( 標籤 ) 控制項及 2 個 TextBox( 文字方塊 ) 控 制項, 並依下表設定控制項的相關屬性 控制項名稱 屬性 設定值 Form1 Text 溫度轉換 Size 410, 143 Label1 Text 攝氏 Label2 Text 度 = 華氏 Label3 Text 度 (2) 雙按 TextBox1 控制項, 在表單的 TextChanged 事件中撰寫程式 (3) 宣告變數 c 為 Integer 資料型別 (4) 設定變數 c 的值為使用者在 TextBox1 控制項輸入的資料 ( 即攝氏溫度 ) (5) 攝氏轉華氏溫度的公式為 : 華氏溫度 = 攝氏溫度 * 9 / 5 + 32; 故設定 TextBox2 控制項的值為 c * 9 / 5 + 32

第 3 章 Visual Basic 控制項 123 綜合評量 一 選擇題 ( )1. 關於 Visual Basic 的表單事件 Paint 的敘述, 下列何者正確? (A) 該事件發生在 表單被印表機列印時 (B) 該事件發生在表單被記憶體儲存時 (C) 該事件發生 在表單上的 Paint 按鈕被按一下時 (D) 該事件發生在表單被搬動 放大或覆蓋表 單的物件被移開時 統測 ( )2. 下列 Visual Basic 表單中, 用來顯示問卷題目的控制項為何? (A) 按鈕 (B) 核取方塊 (C) 標籤 (D) 文字方塊 ( )3. 宛茵想利用 VB 撰寫一支程式, 讓歌迷給偶像的祝福, 請問下列哪一個控制項最適合用來輸入祝福的話? (A)Button (B)TextBox (C)Label (D)Form ( )4. 下圖中, 何者最可能是以標籤 (Label) 控制項來佈建? (A) 甲 (B) 乙 (C) 丙 (D) 丁 甲 丙 丁 乙 ( )5. 下列哪一個是由使用者操控滑鼠或鍵盤所引發的事件? (A)Activated (B)Click (C)Load (D)Timer ( )6. 下列哪一個屬性可用來設定控制項的有效狀態? (A)Text (B)Size (C)AutoSize (D)Enabled

124 程式語言與設計 -Visual Basic Ⅰ ( )7. 下列哪一個屬性可用來設定控制項的顯示狀態? (A)Show (B)Picture (C)Value (D)Visible ( )8. 在 Visual Basic 的工具箱中, 下列何者代表 Button( 按鈕 ) 控制項? (A) (B) (C) (D) ( )9. 在 Visual Basic 的工具箱中, 下列何者代表 Label( 標籤 ) 控制項? (A) (B) (C) (D) ( )10. 在 Visual Basic 的工具箱中, 下列何者代表 TextBox( 文字方塊 ) 控制項? (A) (B) (C) (D) 二 多元練習題 1. 建立 "ans3-a.sln" 新專案, 並參考本章第 2 節 改變表單背景色 的程式範例, 撰寫一個可透過按下不同按鈕, 來更改表單背景色的程式 成果預覽 : 提示 : 更改表單背景色彩的程式敘述為 :BackColor = Color. 色彩 2. 選按 檔案 / 開啟專案 選項, 開啟專案 "ex3-b.sln", 設計一個類似聊天室的程式, 讓兩個使用者可用輸入文字的方式來進行交談 成果預覽 : Label1 TextBox1 TextBox3 Label2 TextBox2 提示 : (1) 撰寫甲方訊息送出的程式敘述 : TextBox3.Text = TextBox3.Text + Label1.Text + TextBox1. Text + vbcrlf (2) 撰寫乙方訊息送出的程式敘述 : TextBox3.Text = TextBox3.Text + Label2.Text + TextBox2. Text + vbcrlf (3) 撰寫清除訊息的程式敘述 :TextBox3.Text = ""