Microsoft Word - 6.DOC

Similar documents
VB程序设计教程

投影片 1

投影片 1

IsPostBack 2

Microsoft PowerPoint - VB14.ppt

2

Visual Basic D 3D

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

MVB-1001.DOC

Microsoft PowerPoint - VB5

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

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

星星排列 _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 - 小心翼翼的二十一點N.doc

Chapter 16 集合

untitled

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

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

Microsoft PowerPoint - vb_net4

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

05855BB03.indd

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

untitled

PowerPoint Presentation

Microsoft PowerPoint - Chapter5

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

VB控件教程大全

ActiveX Control

穨ac3-3.PDF

馬孝先

untitled

Microsoft PowerPoint - vb.net2.ppt

Excel VBA Excel Visual Basic for Application

CU0594.pdf

untitled


單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

untitled

Microsoft PowerPoint - 07_WinProg.pptx

《Visual Basic程序设计》实验课

Microsoft Word - ch05.doc

Microsoft Word - GUI design.doc

Microsoft PowerPoint - 第14章.ppt

Web Form 表單與事件處理

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

epub 94-3

05224AA11.indd

Microsoft Word - 02.doc

Microsoft PowerPoint - OPVB1基本VB.ppt

穨文件1

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

<img>

運算子多載 Operator Overloading

Microsoft PowerPoint - 11_EventHandle.pptx

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

PowerPoint 簡報

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

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp

Microsoft Word - AEL CH07

untitled

TPM BIOS Infineon TPM Smart TPM Infineon TPM Smart TPM TPM Smart TPM TPM Advanced Mode...8

多層次傳銷與獎金系統

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

AutoCAD 用戶如何使用 ArchiCAD

投影片 1

epub83-1

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc

Microsoft Word - ch06.doc

E-Form Word

untitled

Microsoft PowerPoint - ASP_NET_04


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

2010年3月计算机等级考试四级网络工程师笔试

Microsoft PowerPoint - VB7

TC35短信发送程序设计

Microsoft PowerPoint - 18_Event.pptx

Microsoft Word - 專題製作研究報告書.doc

CC213

Microsoft Word - ACI chapter00-1ed.docx

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

Microsoft PowerPoint - AngularJS-1 [唯讀]

視窗程式設計

untitled

使用手冊

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

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

PowerPoint Presentation

Autodesk Product Design Suite Standard 系統統需求 典型使用用者和工作流程 Autodesk Product Design Suite Standard 版本為為負責建立非凡凡產品的設計師師和工程師, 提供基本概念設計計和製圖工具, 以取得令人驚驚嘆

書面

建立Android新專案

1

6-2 計算機概論 COMPUTERS 6-1 Windows 7 功能簡介 Windows Windows XP Windows Vista Aero Shake Windows Aero Windows Aero Microsoft 半透明效果 Aero Peek 透視 Wi

第 4 章 表單與程式設計

導讀 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# 程式

表二 105 年國中教育會考英語科閱讀與聽力答對題數對應整體能力等級加標示對照表 閱讀答 對題數 聽力答對題數 待加強待加強待加強待加強待加強待加強待加強待加強待加強待加強待加強待加強

Microsoft Word - ch doc

Python Facebook put_wall_post(message,attachment [,profile_id]) put_wall_post(message,attachment [,profile_id]) message message attachment profi

ProgrammersGuide for Visual Basic 在此章節您將學習如何快速地使用 Microsoft Visual Basic 和 HALCON/COM 的介面, 來發展 HALCON 的應用程式, 我們將會用簡單的步驟來告訴您如何完成 而這個小程式本身就是一個 GUI 的介面 此

Transcription:

Chapter 文字標籤與按鈕 學習重點 6.1 視窗程式設計概論 6.2 表單物件 (Form) 6.3 控制項物件 (Control) 6.4 命令按鈕 ( ) 6.5 標籤方塊 ( ) 6.6 文字方塊 ( ) 6.7 迷你算盤 3.0 版 6.8 習題

6.1 視窗程式設計概論 6.1.1 Windows 如何工作 Microsoft Windows 是個多工作業環境, 它利用視窗 事件和訊息來處理多工作業 每一個視窗就代表一個 Windows 的工作環境, 而視窗中含有許多的物件, 如表單和控制項 每一個物件都具有自己的事件處理程序, 也就是每個物件都具有輸入與輸出的功能, 所以對 Windows 作業系統而言, 每一個物件都視為一個小視窗 Microsoft Windows 管理所有視窗的方法, 是給予每一個視窗 ( 或稱物件 Object) 一個唯一的識別碼 ( 視窗代碼或 hwnd), 然後監視每一個視窗的事件或動作 6.1.2 引發事件的模式 事件 (Event) 可能是按鍵盤或滑鼠所引發, 也可能是由程式控制, 或是由另一個視窗所引發 當有事件發生時, 視窗便會傳送訊息給作業系統, 由作業系統來執行該事件處理程序 所以程式開發人員只須在事件程序中撰寫程式碼, 則事件發生時作業系統將會執行事件程序中的程式碼 例如, 當載入表單時, 系統將執行 Form1_Load() 程序中的程式碼 6.2 表單物件 (Form) 6.2.1 表單常用屬性 表 6.1 列出表單常用屬性名稱 屬性值 與屬性預設值, 它們可以在設計階段由屬性視窗中設定, 也可以在執行階段由程式碼變更 表 6.1: 表單常用屬性 屬性名稱 屬性值 預設值 AcceptButton 設定按 Enter 鍵時, 代表哪個命令按鈕被按下 ( 註 ) 無 AutoScroll 控制項內容大於可見區域時, 捲軸是否自動出現 False CancelButton 設定按 Esc 鍵時, 代表哪個命令按鈕被按下 無 FormBorderStyle 表示表單框線和標題列的外觀和行為 Sizable Font 用來顯示控制項文字的字型 新細明體, 9pt Text 表單標題列的文字 Form1 注意 註 : 當駐點在某個按鈕上, 按 Enter 鍵將先執行該按鈕功能, 而不是執行 AcceptButton 所設定的按鈕 下面範例是在程式執行階段, 在 Form1_Load 程序中設定表單的 Text 屬性 也就是當程式被載入時, 才設定表單的 Text 屬性 6-2

Chapter 文字標籤與按鈕 6 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Form1.Text = " 練習程式 " ' 設並表單標題 =" 練習程式 " End Sub 6.2.2 表單常用方法 表 6.2 列出表單常用的方法, 這些都是表單類別的方法 如 5.4 節所介紹的類別觀念, 必須先建立類別型態物件, 再使用物件呼叫類別的成員方法 所以表單的方法也必須使用表單物件來呼叫, 而表單名稱就是表單物件, 所以用 表單名稱. 方法 來呼叫下列方法 例如表單名稱為 Form1, 則使用 Form1.Show() 來顯示 Form1 表單 表 6.2: 表單常用方法 方法名稱 Close Hide Show 功能說明關閉表單並釋放所有資源隱藏表單, 但不毀壞表單或釋放其資源顯示一個隱藏的表單 6.2.3 表單常用事件 當引發表單上某些事件時,Visual Basic.Net 將執行該事件對應的程序, 表 6.3 列出載入表單事件對應的程序, 並敘述引發該事件的原因 表 6.3: 表單常用事件 程序名稱 Form_Activated Form_Load 功能說明當表單被開啟時就會引發此事件 但表單被調整 移動 縮小 放大 覆蓋後,Visual Basic 不會再觸發此事件 當表單被載入時, 會引發此事件 但表單被調整 移動 縮小 放大 覆蓋後,Visual Basic 不會再觸發此事件 6.3 控制項物件 (Control) 控制項 (Control) 是為了強化使用者和應用程式間的互動關係, 而包含於表單內的物件 控制項可以接受使用者輸入的資料或是顯示輸出資料 每個控制項都具有定義外觀 ( 如位置 大小和色彩 ) 的屬性, 定義行為的屬性 ( 如回應使用者輸入的方式 ), 以及方法 ( 如加入清單項目方法 ) 與事件 ( 如按一下命令按鈕事件 ) 6.3.1 物件工具箱 工具箱視窗包含 Visual Basic.NET 提供的物件 ( 或稱控制項 ) 下圖是 Visual Basic.NET 中文版預設的基本控制項圖示按鈕, 表 6.4 則是常用控制項的圖示鈕 名稱與功能說明 6-3

表 6.4: 常用工具箱圖示與功能說明 控制項名稱指標 Button CheckBox ComboBox Label ListBox PictureBox RadioButton TextBox 控制項功能滑鼠指標 用來移動表單與控制項, 或調整表單與控制項的大小 命令按鈕 用來開始 中斷 或結束某項作業 核取方塊 提供使用者做 True/False 或 Yes/No 的選擇 下拉清單方塊 它結合了 TextBox 與 ListBox 控制項的功能, 使用者可以將資訊輸入文字方塊, 或者是從清單方塊中選取某個項目 標籤方塊 是一個圖形控制項, 設計師可以使用它來顯示一些不想讓使用者改變的文字 清單方塊 會顯示使用者可選擇項目的清單 如果項目數超出所能顯示的數目時,ListBox 會自動加入捲軸 圖片方塊 用來顯示點陣圖 圖示 或 metafile 檔案型態的圖形 如果控制項面積不足以放進整個影像時, 則圖形將會被裁剪 選項按鈕 會顯示一個可以開或關的選項 一般而言, 選項按鈕常用於選項群組之中, 表示使用者只能選擇群組中一個選項鈕 文字方塊 也被稱編輯欄或編輯控制項 它可以在設計階段顯示資訊 在執行階段讓使用者輸入資料 或是由程式來指定值 6-4

Chapter 文字標籤與按鈕 6 6.3.2 物件命名準則 建立物件 ( 表單或控制項 ) 時,Visual Basic.Net 會預設物件所有的屬性值, 而設計師則可依需要改變全部或部份的屬性值 其中改變物件名稱 (Name) 屬性時, 必須根據物件命名準則來命名如下 : 必須以英文字母為開頭 (a-z,a-z) 只能使用英文字母 (a-z,a-z) 數字(0-9) 與底線(_) 不可使用標點符號 空白字元 中文字 或全形符號 不可超過 40 個字元 不能和受限制的關鍵字同名 除了上述物件命名準則外, 一般習慣以 3 個英文小寫字母作為物件名稱的字首, 如表 6.5 所示這些字首是取自該物件的英文縮寫 表 6.5: 物件字首命名準則 物件 字首 物件命名範例 表單 (Form) Frm FrmPaintEx 圖片方塊 (PictureBox) pic picmouse 標籤 (Label) lbl lblsnowriver 文字方塊 (TextBox) txt txtshow 群組框架 (GroupBox) grp 或 fra frafont 命令按鈕 (Button) btn 或 cmd cmdclose 核取方塊 (CheckBox) chk chkitalic 選項按鈕 (RadioButton) rad 或 opt radbold 清單方塊 (ListBox) lst lstcode 下拉清單方塊 (ComboBox) cbo cbochinese 水平捲軸 (HScorllBar) hsb hsbspeed 垂直捲軸 (VScrollBar) vsb vsbvolume 計時器 (Timer) tmr tmralarm 磁碟清單方塊 (DriveListBox) drv drvsource 目錄清單方塊 (DirListBox) dir dirsource 檔案清單方塊 (FileListBox) fil filsource 形狀 (Shape) shp shpsquare 直線 (Line) lin linhorizontal 影像 (Image) img imgicon 資料控制項 (Data) dat datbiblio OLE 收納器 (OLE container) ole oleobject 對話方塊 (Dialog) glg 或 cdl cdlopenfile 功能表 (Menu) mnu mnuexit 6-5

6.3.3 物件敘述與屬性 物件. 方法 () 物件. 屬性 = 設定值變數 = 物件. 屬性 ' 呼叫方法 ' 設定物件屬性 ' 取得物件屬性 物件 : 是 Visual Basic 提供的物件控制項, 包括常用或不常用的控制項 若省略物件, 則通常表示工作中的表單 方法 : 必須是適用於該物件的敘述或方法 屬性 : 必須是適用於該物件的屬性 設定值 : 是用來設定屬性的常數資料 例如設定 Text 與 Text 屬性的字串資料, 或設定 Enable 屬性的布林值 (True 或 False) Form1.Text = " Vb6-01: 關閉按鈕練習 " ' 設定表單標題 Button1.Text = " 關閉 (&C)" ' 設定按鈕標題 Label1.Text = " 請輸入密碼 :" ' 設定標籤標題 6.3.4 執行一系列敘述 With 物件 [ 多個敘述 ] End With With-End With: 敘述可對某個物件執行一系列的敘述, 而不用重複指出物件的名稱, 例如, 要改變一個物件的多個屬性 物件 : 是必要參數, 為一個物件或使用者自訂型態的名稱 多個敘述 : 要在物件上執行的一行或多行敘述 TextBox1.Height = 25 TextBox1.Width = 100 TextBox1.Text = "HelloWorld!" ' 設定文字方塊高度 ' 設定文字方塊寬度 ' 設定文字方塊文字 上面範例以 3 個獨立的敘述, 設定文字方塊 TextBox1 的高度 寬度 與文字等屬性 下面範例是將上面 3 個獨立敘述, 包含於 With TextBox1-End With 區塊中, 因此這 3 個屬性設定都跟文字方塊 TextBox1 有關 With TextBox1 ' 物件為文字方塊.Height = 25 ' 設定文字方塊高度.Width = 100 ' 設定文字方塊寬度.Text = "HelloWorld!" ' 設定文字方塊文字 End With 在看下面範例就可以知道 With-End With 的用途, 將 With Obj-End With 放在 SetObj 程序中, 並以參數 Obj 當作 With 的物件 因此, 在 Form1_Load 程序中,SetObj TextBox1 呼叫並傳遞文字方塊 TextBox1 給 SetObj 程序, 設定文字方塊屬性 ;SetObj Label1 呼叫並傳遞標籤方塊 Label1 給 SetObj 程序, 設定標籤方塊屬性 6-6

Chapter 文字標籤與按鈕 6 Public Sub SetObj(Obj As Object) With Obj.Height = 25.Width = 100.Text = "HelloWorld!" End With End Sub Private Sub Form1_Load() SetObj TextBox1 SetObj Label1 End Sub ' 根據參數指定物件 ' 設定物件的高度 ' 設定物件的寬度 ' 設定物件的文字 ' 呼叫 SetObj 設定 TextBox1 ' 呼叫 SetObj 設定 Label1 6.4 命令按鈕 ( ) 命令按鈕 (Button) 是使用者與應用程式互動的最簡單方法, 所以許多 Visual Basic.Net 應用程式都具備命令按鈕 當使用者選取命令按鈕時會引發 Click 事件, 所以開發人員可在 Click 事件程序內, 撰寫程式碼指定觸發事件後要執行的動作 在執行階段選取命令按鈕並觸發事件的方法如下 : 滑鼠操作 : 以滑鼠左鍵按一下命令按鈕 鍵盤操作 : 按 Tab 鍵移動駐點至欲選取按鈕上, 再按 Enter 鍵或 Space 鍵選取該命令按鈕 快捷操作 : 按 Alt + 對應鍵 ( 有底線字元鍵 ) 選取命令按鈕 程式操作 : 在程式碼中設定命令按鈕的 Value 屬性為 True 也可選取命令按鈕 預設按鈕 : 在設計階段中, 設定命令按鈕的 Default 屬性為 True, 則該命令按鈕為預設按鈕 6.4.1 命令按鈕屬性 命令按鈕 (Button) 主要是判斷是否被按下, 所以它的預設屬性為判斷真 (True) 或假 (False) 的數值 (Value) 表 6.7 列出其中部份屬性與說明, 其它屬性大多與表單屬性相同, 請參閱 6.1.1 節相關屬性與說明 表 6.7: 命令按鈕基本屬性 屬性 說明 預設值 Cancel 當停駐點在命令按鈕上, 按 Esc 鍵有效或無效 False( 無效 ) True: 按 Esc 鍵有效,False: 按 Esc 鍵無效 Name 命令按鈕 ( 物件 ) 的名稱 它作為命令按鈕物件的事件 Button1 程序本名, 例如 Sub Button1_Click() Text 設定命令按鈕上的標題文字與對應鍵 & 符號之後 Button1 的一個字元為對應鍵, 按法 Alt + 對應鍵 Visible 顯示或隱藏命令按鈕 True: 顯示命令按鈕,False: 隱藏命令按鈕 True( 顯示 ) 6-7

6.4.2 命令按鈕對應鍵 在命令按鈕的 Text 屬性文字內插入 & 符號, 將使得此符號之後的字元成為該命令按鈕的對應鍵 在執行過程中, 按 Alt + 對應鍵為執行該命令按鈕的快捷操作 若要在物件的標題中顯示 & 符號, 而不是設定對應鍵, 則使用連續的 && 符號 Button1.Text = "IN&&OUT" Form1.Text = "AT&&T" ' 按鈕標題 =IN&OUT ' 表單標題 =AT&T 6.4.3 終止程式 (End) End End: 陳述式可以強制終止程式碼, 無須經過 Unload QueryUnload, 或 Terminate 事件, 或任何其它的 Visual Basic 程式碼 Unload QueryUnload, 表單與物件類別模組的 Terminate 事件都不會執行 由物件類別模組所建立的物件會被破壞 以 Open 陳述式開啟的檔案會被關閉, 程式所佔用的記憶體空間也會被釋放 程式中若有使用 Unload QueryUnload 或 Terminate 事件, 則不適合使用 End 敘述強迫終止程式, 而可改用 Application.Exit 敘述結束程式 基本上, 第二篇以介紹控制項為主, 大多只使用 Form_Load 與 Form_Activate 事件而已, 所以都以 End 敘述來結束程式 下面範例在 cmdclose_click 事件中使用 End 結束程式, 所以按指定按鈕 cmdclose 則執行 End 敘述並結束程式 Private Sub cmdclose_click(byval sender As Object, _ ByVal e As System.EventArgs) Handles cmdclose.click) End ' 強制終止程式 End Sub 6.4.4 結束程式 (Application.Exit) Application.Exit() Application.Exit(): 通知所有信息唧桶 (pump), 它們必須關閉, 通知後將關閉所有的應用程式視窗 下面範例在 cmdclose_click 事件中使用 Application.Exit() 結束程式, 所以按指定按鈕 cmdclose 則執行 Application.Exit() 敘述並結束程式 Private Sub cmdclose_click(byval sender As Object, _ ByVal e As System.EventArgs) Handles cmdclose.click Application.Exit() ' 結束程式 End Sub 6-8

Chapter 文字標籤與按鈕 6 程式 vb6-01: 建立結束按鈕 1. 執行 開始 \ 所有程式 \Microsoft Visual Basic 2008 Express Edition 上面開始功能表的路徑, 將隨著安裝版本的不同而有不同, 而且開啟後的畫面也跟書本上的畫面有些許不同 不過, 視窗配置的方式與程式設計的方法則大致相同, 所以不論安裝哪種版本, 下面的設計步驟都相同, 只是畫面可能有些不同而已 圖 1 2. 出現圖 1 後, 以滑鼠按一下最近使用專案方框中的 建立專案, 開啟 新增專案 對話框如圖 2 然後選擇圖 2 的 Widnows 應用程式, 並在名稱欄中輸入專案名稱 vb6-01, 按鈕後回到 Visual Basic 2008 Express Edition 畫面如圖 3 圖 2 6-9

圖 3 3. 在圖 3 方案總管視窗中, 按一下 Form1.vb 並修改成 FrmButton.vb, 則.vb 的主檔名與表單 Name 屬性皆改為 FrmButton 如圖 4 在屬性視窗中修改 Size 屬性為 300, 150, 與 Text 屬性為 vb6-01: 建立結束按鈕, 修改後表單畫面如圖 5 圖 4 圖 5 4. 按工具列 全部儲存 按鈕, 開啟儲存專案對話框 然後輸入專案名稱 vb6-01, 專案位置 C:\vb06, 與方案名稱 vb6-01 如圖 6 最後按鈕回到 Visual Basic 2008 Express Edition 的開發環境畫面 圖 6 6-10

Chapter 文字標籤與按鈕 6 5. 按一下自動隱藏的工具箱, 打開工具箱, 選擇 Buttons, 然後在表單中使用滑鼠拖曳一方框如圖 7 圖 7 6. 放開滑鼠左鍵後, 此方框將形成一個命令按鈕, 按鈕的預設名稱與預設標題皆為 Button1, 如圖 8 圖 8 7. 在圖 8 中選擇命令按鈕後, 然後在按鈕屬性視窗中, 修改按鈕名稱 (Name) 屬性為 cmdend 如圖 9, 再修改按鈕文字 (Text) 屬性為 按此鈕結束程式 如圖 10 6-11

圖 9 圖 10 8. 修改命令按鈕名稱與文字屬性後, 表單與按鈕的畫面如圖 11 從程式 vb6-02 以後的練習, 不再提供詳細步驟, 只提供如圖 11 的表單畫面, 與物件屬性表如下表, 讀者得自行按照表單物件與屬性表, 自行製作表單與修改物件屬性 修改表單屬性後 Name: FrmButton Text: vb6-01: 建立結束按鈕 修改按鈕屬性後 Name: cmdend Text: 按此鈕結束程式 圖 11 物件屬性 : 今後將只提供更改屬性表如下, 詳細操作過程則請參考上面的步驟 物件 屬性 預設屬性值 更改屬性值 表單 Name Form1 FrmButton Text Form1 vb6-01: 建立結束按鈕 命令按鈕 Name Button1 cmdend Text Button1 按此鈕結束程式 程式碼 : 按方案總管的程式碼檢視鈕, 開啟程式碼視窗, 剛開始只有 FrmButton 類別 然後在物件下拉清單中選擇 cmdend 按鈕物件, 在事件下拉清單中選擇 Click 按一下事件, 則在 FrmButton 類別中插入 cmdend_click 方法 最後在 cmdend_click 方法中, 加入 End 命令如下圖, 表示按一下鈕時將執行 End 命令 6-12

Chapter 文字標籤與按鈕 6 執行程式 : 按 Visual Basic 2008 工具列的按一下則結束程式 按鈕, 執行 vb6-01 專案如下, 然後 程式說明 : 1. cmdend_click 事件程序內只有 End 指令, 故將滑鼠指標移到上, 並在按鈕上按一下滑鼠左鍵, 將執行此事件程序並結束程式 6.5 標籤方塊 ( ) 6.5.1 標籤基本屬性 標籤 (Label) 可作為其它控制項的用途說明文字, 因為使用者不能更改標籤內的文字 例如, 將標籤放在控制項 ( 如文字方塊 清單方塊等 ) 的上方或左方, 當作控制項的用途說明文字 表 6.8 列出其中部份屬性與說明, 其它屬性大多與表單屬性相同, 請參閱 6.1.1 節相關屬性與說明 表 6.8: 標籤基本屬性 屬性 說明 預設值 AutoSize 根據文字的字數, 而調整標籤方塊的寬度 False True: 自動調整,False: 不調整 BorderStyle 設定標籤方塊的邊框型式 None 屬性值有 None, FixSingle, Fix3D 三種 Name 標籤方塊 ( 物件 ) 的名稱 它作為標籤方塊物件的事 Label1 件程序本名, 例如 Sub Label1_Click() Text 設定標籤方塊上的標題文字與對應鍵 & 符號之後 Label1 的一個字元為對應鍵, 按法 Alt + 對應鍵 TextAlign 設定選項按鈕標題文字的對其方式 TopLeft,TopCenter,TopRight,MiddleLeft,MiddleCenter, MiddleRight,BottomLeft,BottomCenter,BottomRight TopLeft 下面範例是在 cmdchinese_click() 事件程序中, 設定標籤 (lblmessage ) 的標題 (Text), 所以當按一下 (Click) cmdchinese 物件時, 標籤 (lblmessage) 的標題改為 嗨, 大家好! 6-13

Private Sub cmdchinese_click(byval sender As Object, _ ByVal e As System.EventArgs) Handles cmdchinese.click lblmessage.text = " 嗨, 大家好!" ' 顯示中文問候語 End Sub 6.5.2 標籤 Text 屬性 標籤.Text = " 字串 " Text: 屬性是設定標籤方塊上的標題文字與對應鍵 & 符號之後的一個字元為對應鍵, 按法 Alt + 對應鍵 若要在標籤中顯示 & 符號, 而不是設定對應鍵, 則使用連續的 && 符號 標籤 : 是建立於表單的標籤物件名稱 (Name), 例如 Label1 字串 : 可以是包含於雙引號內的字串常數, 或已定義的字串變數 標籤方塊除了可作為其它控制項的用途說明文字外, 也可取代鎖定型態的 (Locked) 文字方塊 下面練習就是按不同的按鈕, 然後利用標籤顯示不同的問候語 因為此練習不提供使用者輸入文字, 所以利用標籤取代文字方塊 程式 vb6-02: 中英文問候程式 表單與物件 : 建立三個按鈕時, 若使用複製與貼上, 則可能建立三個按鈕陣列 筆者建議初學者分開建立三個按鈕 FrmLblOutput lblmessage cmdenglish cmdchinese cmdexit 物件屬性 : 物件 屬性 預設屬性值 更改屬性值 表單 Name Form1 FrmLblOutput Text Form1 vb6-02: 問候程式 命令按鈕 Name Button1 cmdchinese Text Button1 中文 (&C) 命令按鈕 Name Button2 cmdenglish Text Button2 英文 (&E) 命令按鈕 Name Button3 cmdexit Text Button3 結束 (&X) 標籤方塊 Name Label1 lblmessage TextAlign TopLeft MiddleCenter 6-14

Chapter 文字標籤與按鈕 6 Font 新細明體, 標準 Arial, 粗斜體, 16 Text Label1 Label1 程式碼 : 01: Public Class FrmLblOutput 02: 03: Private Sub cmdchinese_click(byval sender As Object, _ 04: ByVal e As System.EventArgs) Handles cmdchinese.click 05: lblmessage.text = " 嗨, 大家好!" ' 顯示中文問候語 06: End Sub 07: 08: Private Sub cmdenglish_click(byval sender As Object, _ 09: ByVal e As System.EventArgs) Handles cmdenglish.click 10: lblmessage.text = "Hello World!" ' 顯示英文問候語 11: End Sub 12: 13: Private Sub cmdexit_click(byval sender As Object, _ 14: ByVal e As System.EventArgs) Handles cmdexit.click 15: End ' 結束程式 16: End Sub 17: End Class 執行程式 : 執行程式後, 按鈕 ( 或按 Alt + C ) 顯示中文問候語如下左圖, 按鈕 ( 或按 Alt + E ) 顯示英文問候語如下右圖, 按鈕 ( 或按 Alt + X ) 結束程式 程式說明 : 1. 第 3~6 行是 cmdchinese_click 事件程序, 滑鼠按一下鈕 ( 或按 Alt + C ) 時, 將執行此事件程序 然後設定標籤 lblmessage 文字為 嗨, 大家好! 2. 第 8~11 行是 cmdenglish_click 事件程序, 滑鼠按一下鈕 ( 或按 Alt + E ) 時, 將執行此事件程序 然後設定標籤 lblmessage 文字為 Hello World! 3. 第 13~16 行, 是 cmdexit_click 事件程序, 所以當滑鼠按一下鈕 ( 或按對應鍵 Alt + X ) 時, 將執行此事件程序 6-15

6.6 文字方塊 ( ) 6.6.1 文字基本屬性 文字方塊 (TextBox) 主要是用來輸出或輸入文字, 所以它的預設屬性為文字 (Text) 表 6.9 列出其中部份屬性與說明, 其它屬性大多與表單屬性相同, 請參閱 6.1.1 節相關屬性與說明 表 6.9: 文字方塊基本屬性 屬性 說明 預設值 AcceptEnter 是否接受 Enter 鍵, 通常配合 Multiline=True 屬性時, False 用於輸入跳行符號 Maxlength 顯示文字的最大長度, 範圍 0 至 32767 其中 32767 0 表示不預設輸入的長度 MultiLine 允許顯示多列文字 False( 單列 ) True: 允許多列文字,False: 單列顯示文字 Locked 鎖住文字方塊內容, 使文字內容不可改變 False( 可變 ) True: 鎖住文字內容,False: 可改變文字內容 Name 文字方塊 ( 物件 ) 的名稱 它作為文字方塊物件的事 Text1 件程序本名, 例如 Sub Text1_Change() PasswordChar 設定輸入的字元不直接顯示於文字方塊內, 而以設定 [ 清除 ] 的屬性字元代替, 例如星號 (*) Text 顯示於文字方塊內的文字 一般是用於執行過程中顯 Text1 示或輸入文字 TextAlign 設定選項按鈕標題文字的對其方式 MiddleLeft TopLeft,TopCenter,TopRight,MiddleLeft,MiddleCenter, MiddleRight,BottomLeft,BottomCenter,BottomRight ScrollBar 配合 MultiLine 屬性, 以上下左右捲動文字 None None: 無, Horizontal: 水平, Vertical 垂直, Both: 皆有 WordWrap 若 WordWrap 屬性為 true, 無論 ScrollBars 屬性值為何, 將不顯示水平捲軸 True 6.6.2 限制輸入鍵 在文字方塊中輸入文字時, 會觸發文字方塊的 KeyPress 事件, 所以在 KeyPress 程序中先以 Asc 函數比較是否為限制鍵, 若是則令 KeyAscii=0 以取消此輸入按鍵 下面範例是利用 KeyPress 事件, 判斷輸入鍵是否為按鍵 "A" Private Sub txtbookname_keypress(byval sender As Object, _ ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles _ txtbookname.keypress 'KeyPress 事件程序 If KeyAscii <> Asc("A") Then ' 若輸入鍵不為 A KeyAscii = 0 ' 取消此按鍵 6-16

Chapter 文字標籤與按鈕 6 End If End Sub ' 結束 If 區塊 ' 結束程序 6.6.3 TextChange 事件 若文字方塊中資料改變時, 會觸發文字方塊的 Change 事件 下面練習是利用 Change 事件, 處理公制與英制的長度換算 程式 vb6-03: 長度換算 表單與物件 : FrmLengthConv Label1 Label2 txtcm txtin cmdclose 物件屬性 : 物件 屬性 預設屬性值 更改屬性值 表單 Name Form1 FrmLengthConv Text Form1 vb6-03: 長度換算 標籤方塊 Name Label1 Label1( 註 ) Text [ 清除 ] 公分 : 標籤方塊 Name Label2 Label2( 註 ) Text [ 清除 ] 英吋 : 文字方塊 Name TextBox1 txtcm Text [ 清除 ] [ 清除 ] 文字方塊 Name TextBox2 txtin Text [ 清除 ] [ 清除 ] 命令按鈕 Name Button1 cmdclose Text Button1 關閉 (&C) 注意 註 : 本程式的標籤物件只作為文字方塊的說明, 故可以不用改變標籤的 Name 屬性 程式碼 : 01: Public Class FrmLengthConv 'FrmLengthConv 表單類 02: 03: Private Sub cmdclose_click(byval sender As Object, _ 04: ByVal e As System.EventArgs) Handles cmdclose.click 6-17

05: End 06: End Sub 07: 08: Private Sub txtcm_textchanged(byval sender As Object, _ 09: ByVal e As System.EventArgs) Handles txtcm.textchanged 10: txtin.text = Val(txtCM.Text) / 2.54 ' 換算英吋並輸出到 txtin 11: End Sub 12: 13: Private Sub txtin_textchanged(byval sender As Object, _ 14: ByVal e As System.EventArgs) Handles txtin.textchanged 15: txtcm.text = Val(txtIN.Text) * 2.54 ' 換算公分並輸出到 txtcm 16: End Sub 17: End Class 執行程式 : 在 公分 的文字方塊輸入公分數, 則 英吋 文字方塊立即顯示對應的英吋數, 如下左圖 在 英吋 的文字方塊輸入英吋數, 則 公分 文字方塊立即顯示對應的公分數, 如下右圖 程式說明 : 1. 第 8~11 行, 是 txtcm_textchange 事件程序, 當 txtcm 文字方塊內容改變時, 將觸發此事件 第 10 列是將 txtcm 的字串轉成數值, 並除以 2.54 後, 指定給 txtin.text 2. 第 13~16 行, 是 txtin_textchange 事件程序, 當 txtin 文字方塊內容改變時, 將觸發此事件 第 15 列是將 txtin 的字串轉成數值, 並乘以 2.54 後, 指定給 txtcm.text 6.6.4 MultiLine 屬性 文字方塊.MultiLine = {True False} MultiLine: 屬性預設值為 False, 所以建立文字方塊時被設定為只能輸出單行文字 若要輸出多行文字, 則可將文字方塊的 MultiLine 屬性改為 True 文字方塊 : 是建立於表單的文字方塊物件名稱 (Name), 例如 TextBox1 在多行的文字方塊中, 可使用 vbcrlf 常數來控制跳行如下面範例 TextBox1.MultiLine = True TextBox1.Text = "Microsoft Windows XP 中文版 " & vbcrlf _ & "Visual Basic.Net 中文版 " 6-18

Chapter 文字標籤與按鈕 6 上面範例是在執行期間設定文字方塊的 MultiLine 屬性為 True, 與輸出多行文字到文字方塊 TextBox1 中 而在設計階段則可更改文字方塊屬性視窗的 MultiLine 屬性與 AcceptEnter 屬性為 True 更改後, 選擇 Text 欄位時會出現下拉箭頭, 按下拉箭頭輸入字串, 按 Enter 跳行 別忘了增加文字方塊的高度, 使它可顯示全部文字列 捲軸上捲將 AcceptEnter 屬性改為 True MultiLine 屬性改為 True 對應的文字方塊 按下拉箭頭 輸入字串按 Enter 跳行 文字方塊.ScrollBar = {0 1 2 3} ScrollBar: 屬性是當文字的行數大於文字方塊所能顯示的範圍時, 增加水平捲軸 垂直捲軸 或二者皆有, 以便使用捲軸查看方塊中所有文字 通常在設計階段就決定是否需要捲軸, 所以可利用屬性視窗更改 ScrollBar 屬性值 屬性值等於 0: 表示沒有捲軸,1: 表示增加水平捲軸,2: 表示增加垂直捲軸 或 3: 表示增加水平與垂直捲軸 程式 vb6-04: 顯示多行文字 表單與物件 : FrmMultiline Label1 txthorizontal Label2 txtvertical cmdclose 注意 註 1: 本程式的標籤物件只作為文字方塊的說明, 可以不用改變標籤的 Name 屬性 註 2: 若 WordWrap 屬性為 true, 無論 ScrollBars 屬性值為何, 將不顯示水平捲軸 6-19

物件屬性 : 物件 屬性 預設屬性值 更改屬性值 表單 Name Form1 FrmMultiline Text Form1 vb6-04: 顯示多行文字 標籤方塊 Name Label1 Label1( 註 1) Text 加入水平文字捲軸 標籤方塊 Name Label2 Label2( 註 1) Text 加入垂直文字捲軸 文字方塊 Name TextBox1 txthorizontal Multiline False True ScrollBar None Horizontal WordWarp True False( 註 2) 文字方塊 Name TextBox2 txtvertical Multiline False True ScrollBar None Vertical 命令按鈕 Name Button1 cmdclose Text Button1 關閉 (&C) 程式碼 : 01: Public Class FrmMultiline 02: Private Sub FrmMultiline_Load(ByVal sender As Object, _ 03: ByVal e As System.EventArgs) Handles Me.Load 04: Dim Poem As String = " 綠螘新醅酒, 紅泥小火爐 " _ 05: & " 晚來天欲雪, 能飲一杯無?"' 定義字串 06: txthorizontal.text = Poem ' 輸出到水平捲軸文字方塊 07: txtvertical.text = Poem ' 輸出到垂直捲軸文字方塊 08: End Sub 09: 10: Private Sub cmdclose_click(byval sender As Object, _ 11: ByVal e As System.EventArgs) Handles cmdclose.click 12: End 13: End Sub 14: End Class 執行程式 : 執行後如下左圖 拖曳水平捲軸指標到最右邊, 拖曳垂直捲軸指標到最下邊後, 如下右圖 6-20

Chapter 文字標籤與按鈕 6 程式說明 : 1. 第 2~8 行, 是 FrmMultiline_Load 事件程序, 當表單被載入時將執行此事件程序 第 4 列 Poem 是定義並起始字串, 且因為字串太長所以字串分割成二行並使用 (_ &) 連接, 實際上仍為一字串, 並沒有加入跳行符號 第 6 列令 txthorizontal 文字方塊的文字等於 poem 字串 第 7 列令 txtvertical 文字方塊的文字等於 poem 字串 6.6.5 PasswordChar 屬性 文字方塊.PasswordChar = 顯示字元 PasswordChar: 是以顯示字元代替輸入字元, 例如星號 (*) 因此輸入時文字方塊只顯示替代字元, 而不顯示輸入字元, 適用於密碼輸入 文字方塊 : 是建立於表單的文字方塊物件名稱 (Name), 例如 TextBox1 程式 vb6-05: 輸入密碼 表單與物件 1: 建立第一個表單 vb6-05a.vb FrmPassword Label1 txtpassword cmdnext 表單與物件 1 屬性 : 物件 屬性 預設屬性值 更改屬性值 表單 Name Form1 FrmPassword Text Form1 vb6-05a: 密碼輸入 命令按鈕 Name Button1 cmdnext Text Button1 下一步 (&N) 標籤方塊 Name Label1 Label1 Text [ 無 ] 請輸入密碼 : 文字方塊 Name TextBox1 txtpassword PasswordChar [ 無 ] * Text [ 無 ] [ 無 ] 第一個表單 (vb6-05a.vb) 程式碼 : 01: Public Class FrmPassword 02: 6-21

03: Private Sub cmdnext_click(byval sender As Object, _ 04: ByVal e As System.EventArgs) Handles cmdnext.click 05: Me.Hide() ' 隱藏第一個表單 06: FrmDisplay.Show() ' 顯示第二個表單 07: If Me.txtPassword.Text = "Visual Basic.Net" Then 08: FrmDisplay.lblMessage.Text = " 歡迎使用本軟體!" ' 顯示訊息 09: Else 10: FrmDisplay.lblMessage.Text = " 抱歉, 密碼錯誤!" ' 顯示訊息 11: End If 12: End Sub 13: End Class 表單與物件 2: 按一下 專案 \ 加入 Windows Form 功能項, 建立第二個表單 vb6-05b.vb, 然後在表單中建立控制項, 並更改表單與控制項屬性值如下 FrmDisplay lblmessage cmdclose 表單與物件 2 屬性 : 物件 屬性 預設屬性值 更改屬性值 表單 Name Form2 FrmDisplay Text Form2 vb6-05b: 顯示訊息 命令按鈕 Name Button1 cmdclose Text Button1 關閉 (&C) 標籤 Name Label1 lblmessage AutoSize True False Text [ 無 ] [ 清除 ] TextAlign TopLeft MiddleCenter 第二個表單 (vb6-05b.vb) 程式碼 : 01: Public Class FrmDisplay 02: 03: Private Sub cmdclose_click(byval sender As Object, _ 04: ByVal e As System.EventArgs) Handles cmdclose.click 05: End 06: End Sub 07: End Class 執行程式 : 在第一個表單的密碼文字方塊中輸入密碼 Visual Basic.NET 如下左圖 按鈕 ( 或按 Alt + N ) 後顯示第二個表單, 如下右圖 如果密碼錯誤, 6-22

Chapter 文字標籤與按鈕 6 則下右圖將顯示錯誤訊息 按一下 鈕 ( 或按 Alt + C ), 則結束程式並關閉 視窗 程式說明 : 1. vb6-05a.vb 的第 3~12 行, 是 cmdnext_click 事件程序, 所以當滑鼠按鈕 ( 或按對應鍵 Alt + N ) 時, 將執行此事件程序 第 4 列 Me.Hide 是隱藏自身表單 FrmPassword,Hide 是表單方法或稱表單函數 第 5 列 FrmDisplay.Show 是顯示第二個表單 FrmDisplay,Show 是表單方法或稱表單函數 第 7~11 列是在第二個表單 FrmDisplay 的 lblmessage 標籤中顯示訊息, 因為有二個表單所以必須使用 FrmDisplay.lblMessage.Text, 而不能省略表單物件名稱 FrmDisplay 2. vb6-05b.vb 的第 3~6 行, 是 cmdclose_click 事件程序, 所以當滑鼠按鈕 ( 或按對應鍵 Alt + C ) 時, 將執行此事件程序 6.7 迷你算盤 設計一個簡單的電子計算器, 可以執行倍精度的加 減 乘 除運算 也可以參考筆者 1993 年出版的 QuickBasic 中文版易學易用專輯 一書的程式 11.9 電子計算器 程式 vb6-06: 迷你算盤 3.0 版 表單與物件 : ElectroAbacus txtresult cmdseven, cmdeight, cmdnine, cmddiv cmdfour, cmdfive, cmdsix, cmdmul cmdone, cmdtwo, cmdthree, cmdadd cmdzero, cmddot, cmdequal, cmdsub 6-23

物件屬性 : 物件 屬性 更改屬性值 表單 Name ElectroAbacus Text vb6-06: 迷你算盤 3.0 版 命令按鈕 Name cmdzero, cmdone, cmdtwo,, cmdnine Text 0, 1, 2,, 9 命令按鈕 Name cmdadd, cmdsub, cmdmul, cmddiv Text +, -, *, / 命令按鈕 Name cmddot, cmdequal Text., = 文字方塊 Name txtresult Font Arial, 12 點 TabStop False Text 0 TextAlign Rignt 程式碼 : 01: Public Class ElectroAbacus 02: Public n1 As Double ' 宣告倍精度變數 03: Public n2 As Double ' 宣告倍精度變數 04: Public n3 As Double ' 宣告倍精度變數 05: Public sign As String ' 宣告字串變數 06: Public reset As Boolean ' 宣告布林變數 07: Public n As String ' 宣告字串變數 08: 09: Public Sub InDigit(ByVal s As String) ' 自定輸入數字程序 10: If txtresult.text = "0" Or reset = True Then 11: txtresult.text = s ' 設定數值 12: Else 13: txtresult.text = txtresult.text & s ' 串接數值 14: End If 15: reset = False ' 清除旗號 16: End Sub 17: 18: Public Sub Operate(ByVal s As String) ' 自定數值運算程序 19: If n1 <> 0 Then ' 若 n1<>0 則執行等號運算 20: n2 = Val(txtResult.Text) 'n2= 文字方塊的數值 21: Select Case (sign) ' 比較 sign 字串 22: Case "+" ' 若 sign='+' 23: n3 = n1 + n2 ' 執行加法運算 24: Case "-" ' 若 sign='-' 25: n3 = n1 - n2 ' 執行減法運算 26: Case "*" ' 若 sign='*' 27: n3 = n1 * n2 ' 執行乘法運算 28: Case "/" ' 若 sign='/' 29: n3 = n1 / n2 ' 執行除法運算 30: End Select 6-24

Chapter 文字標籤與按鈕 6 31: txtresult.text = Str(n3) ' 運算值轉成字串後輸出 32: sign = "" : n1 = 0 : n2 = 0 ' 重設變數值 33: End If 34: n1 = Val(txtResult.Text) 'n1= 文字方塊的數值 35: sign = s : reset = True ' 設定運算符號與旗號 36: End Sub 37: 38: Private Sub cmdadd_click(byval sender As Object, _ 39: ByVal e As System.EventArgs) Handles cmdadd.click 40: Call Operate("+") ' 呼叫數值運算程序 41: End Sub 42: 43: Private Sub cmdsub_click(byval sender As Object, _ 44: ByVal e As System.EventArgs) Handles cmdsub.click 45: Call Operate("-") ' 呼叫數值運算程序 46: End Sub 47: 48: Private Sub cmdmul_click(byval sender As Object, _ 49: ByVal e As System.EventArgs) Handles cmdmul.click 50: Call Operate("*") ' 呼叫數值運算程 51: End Sub 52: 53: Private Sub cmddiv_click(byval sender As Object, _ 54: ByVal e As System.EventArgs) Handles cmddiv.click 55: Call Operate("/") ' 呼叫數值運算程序 56: End Sub 57: 58: Private Sub cmdequal_click(byval sender As Object, _ 59: ByVal e As System.EventArgs) Handles cmdequal.click 60: n2 = Val(txtResult.Text) 'n2= 文字方塊的數值 61: Select Case (sign) ' 比較 sign 字串 62: Case "+" ' 若 sign='+' 63: n3 = n1 + n2 ' 執行加法運算 64: Case "-" ' 若 sign='-' 65: n3 = n1 - n2 ' 執行減法運算 66: Case "*" ' 若 sign='*' 67: n3 = n1 * n2 ' 執行乘法運算 68: Case "/" ' 若 sign='/' 69: n3 = n1 / n2 ' 執行除法運算 70: End Select 71: txtresult.text = Str(n3) ' 運算值轉成字串後輸出 72: sign = "" : n1 = 0 : n2 = 0 ' 重設變數值 73: End Sub 74: 75: Private Sub cmddot_click(byval sender As Object, _ 76: ByVal e As System.EventArgs) Handles cmddot.click 77: n = InStr(txtResult.Text, ".") ' 搜尋文字方塊中的逗點 78: If n = 0 Then ' 若沒有逗點 79: txtresult.text = txtresult.text & "." ' 串接逗點 80: End If 81: End Sub 82: 6-25

6-26 83: Private Sub cmdzero_click(byval sender As Object, _ 84: ByVal e As System.EventArgs) Handles cmdzero.click 85: Call InDigit("0") ' 呼叫輸入數字程序 86: End Sub 87: 88: Private Sub cmdone_click(byval sender As Object, _ 89: ByVal e As System.EventArgs) Handles cmdone.click 90: Call InDigit("1") ' 呼叫輸入數字程序 91: End Sub 92: 93: Private Sub cmdtwo_click(byval sender As Object, _ 94: ByVal e As System.EventArgs) Handles cmdtwo.click 95: Call InDigit("2") ' 呼叫輸入數字程序 96: End Sub 97: 98: Private Sub cmdthree_click(byval sender As Object, _ 99: ByVal e As System.EventArgs) Handles cmdthree.click 100: Call InDigit("3") ' 呼叫輸入數字程序 101: End Sub 102: 103: Private Sub cmdfour_click(byval sender As Object, _ 104: ByVal e As System.EventArgs) Handles cmdfour.click 105: Call InDigit("4") ' 呼叫輸入數字程序 106: End Sub 107: 108: Private Sub cmdfive_click(byval sender As Object, _ 109: ByVal e As System.EventArgs) Handles cmdfive.click 110: Call InDigit("5") ' 呼叫輸入數字程序 111: End Sub 112: 113: Private Sub cmdsix_click(byval sender As Object, _ 114: ByVal e As System.EventArgs) Handles cmdsix.click 115: Call InDigit("6") ' 呼叫輸入數字程序 116: End Sub 117: 118: Private Sub cmdseven_click(byval sender As Object, _ 119: ByVal e As System.EventArgs) Handles cmdseven.click 120: Call InDigit("7") ' 呼叫輸入數字程序 121: End Sub 122: 123: Private Sub cmdeight_click(byval sender As Object, _ 124: ByVal e As System.EventArgs) Handles cmdeight.click 125: Call InDigit("8") ' 呼叫輸入數字程序 126: End Sub 127: 128: Private Sub cmdnine_click(byval sender As Object, _ 129: ByVal e As System.EventArgs) Handles cmdnine.click 130: Call InDigit("9") ' 呼叫輸入數字程序 131: End Sub 132: End Class

Chapter 文字標籤與按鈕 6 執行程式 : 用法與一般電子計算器相似, 以滑鼠按數字鈕與運算鈕執行運算 程式說明 : 1. 第 9~16 行, 定義處理數字按鈕的 InDigit 程序, 滑鼠按 0~9 數字鈕時, 會產生各個數字鈕的 Click 事件, 而在事件中呼叫此 InDigit 程序 2. 第 18~36 行, 定義處理運算按鈕的 Operate 程序, 滑鼠按 +, -, *, / 運算鈕時, 會產生各運算鈕的 Click 事件, 而在事件中呼叫此 Operate 程序 3. 第 38~56 行, 是 +, -, *, / 運算鈕的 Click 事件程序 程序中只包含呼叫 Operate 程序的敘述 4. 第 58~73 行, 是 = ( 等號 ) 運算鈕的 Click 事件程序 在程序中使用 Select-Case 判斷 sign 符號, 以決定執行哪一種運算 5. 第 75~81 行, 是. ( 小數點 ) 運算鈕的 Click 事件程序 程序中先判斷數值中是否以含有小數點, 若有則忽略此事件, 若沒有則串接小數點到數值後 6. 第 83~131 行, 是 0~9 數字鈕的 Click 事件程序, 程序中只包含呼叫 InDigit 程序的敘述 6-27

6.8 習題 6.8.1 選擇題 1. 下列敘述何者正確? a) 每一個物件都具有自己的事件處理程序 b) 每個物件都具有輸入與輸出的功能 c) 對 Windows 作業系統而言, 每一個物件都視為一個小視窗 d) 以上皆正確 2. 可能引發表單或控制項的事件 (Event) a) 按鍵盤或滑鼠 b) 程式敘述 c) 另一個視窗 d) 以上皆可能 3. 假設 Form1 表單上有 cmdchinese cmdenglish cmdexit 三個命令按鈕, 且駐點 (TabStop) 在 cmdchinese 上, 但是 Form1 的 AcceptButton 設為 cmdexit, 則按 Enter 鍵將執行 按鈕功能 a) cmdchinese b) cmdenglish c) cmdexit d) 以上皆非 4. 假設 Form1 表單上有 cmdchinese cmdenglish cmdexit 三個命令按鈕, 且駐點 (TabStop) 在 cmdchinese 上, 但是 Form1 的 CancelButton 設為 cmdexit, 則按 Esc 鍵將執行 按鈕功能 a) cmdchinese b) cmdenglish c) cmdexit d) 以上皆非 5. 執行 Windows Form 程式, 將引發表單的 事件 ( 單選 ) a) Activated b) Load c) Activated 與 Load d) Activated 或 Load 6. 滑鼠左鍵按一下命令按鈕, 將引發命令按鈕的 事件 a) DoubleClick b) Click c) KeyPress d) KeyDown 7. 在 Visual Basic.Net 中, 屬性可用來設定標籤方塊上的文字 a) Caption b) Text c) Label d) Title 8. 在文字方塊中, 輸入文字將引發文字方塊的 事件 a) TextChenged b) TextInput c) Enter d) Click 9. 要在文字方塊上顯示水平捲軸, 除了必須將 ScrollBars 屬性設為 Horizontal, 還必須 將 屬性設為 False a) Multiline b) Text c) WordWrap d) PasswordChar 10. 在 Visual Basic.Net 中文字方塊 屬性字元會取代在文字方塊的輸入字元 a) ReplaceChar b) Text c) WordWrap d) PasswordChar 6-28

Chapter 文字標籤與按鈕 6 6.8.2 實作題 1. 參考 vb6-02.vbp 問候程式, 在表單中增加一個標籤與中文 (C) 英文(E) 西文(S) 關閉 (X) 四個命令按鈕 a) 按中文 (C) 鈕, 標籤中顯示 嗨, 大家好! b) 按英文 (E) 鈕, 標籤中顯示 Hello World! c) 按西文 (S) 鈕, 標籤中顯示 Hola Mundo! d) 按關閉 (X) 鈕, 結束程式 2. 參考 vb6-03.vbp 長度換算程式, 在表單中增加二個標籤分別顯示攝氏 ( C) 與華氏 ( F), 增加二個文字方塊分別用來輸入攝氏溫度與華氏溫度, 再增加一個關閉按鈕 a) 在攝氏文字方塊中輸入攝氏溫度 ( 例如 38), 則華氏文字方塊立即顯示對應的華氏溫度 ( 例如 100.4) 註: 華氏溫度 =( 攝氏溫度 *9/5)+32 b) 在華氏文字方塊中輸入華氏溫度 ( 例如 100.4), 則攝氏文字方塊立即顯示對應的攝氏溫度 ( 例如 38) 註: 攝氏溫度 =( 華氏溫度 -32)*(5/9) c) 按關閉 (C) 鈕, 結束程式 3. 參考 vb6-03.vbp 長度換算程式, 在表單中增加二個標籤分別顯示公斤與磅, 增加二個文字方塊分別用來輸入公斤與磅, 再增加一個關閉按鈕 a) 在公斤文字方塊中輸入公斤數 ( 例如 5), 則磅文字方塊立即顯示對應的磅數 ( 例如 11) 註:1 磅 =(1/2.2) 公斤 b) 在磅文字方塊中輸入磅數 ( 例如 11), 則公斤文字方塊立即顯示對應的公斤數 ( 例如 5) 註:1 公斤 =2.2 磅 c) 按關閉 (C) 鈕, 結束程式 4. 參考 vb6-03.vbp 容量換算程式, 在表單中增加二個標籤分別顯示公升與美加崙, 增加二個文字方塊分別用來輸入公升與美加崙, 再增加一個關閉按鈕 a) 在公升文字方塊中輸入公升數 ( 例如 30), 則美加崙文字方塊立即顯示對應的加崙數 ( 例如 7.92539979679) 註:1 美加崙 =3.785298 公升 b) 在加崙文字方塊中輸入加崙數 ( 例如 20), 則公升文字方塊立即顯示對應的公升數 ( 例如 75.70596) 註:1 公升 =(1/3.785298) 美加崙 c) 按關閉 (C) 鈕, 結束程式 5. 參考 vb6-03.vbp 長度換算程式, 在表單中增加三個標籤分別顯示半徑 球面積與球體積, 增加一個文字方塊用來輸入半徑, 增加二個標籤用來顯示球面積與球體積, 再增加一個關閉按鈕 a) 在半徑文字方塊中輸入半徑數, 則球面積標籤立即顯示對應的球面積數, 球體積標籤立即顯示對應的球體積數 公式 : 球面積 =4πr 2, 球體積 =(4/3)πr 3 b) 按關閉 (C) 鈕, 結束程式 6-29

6. 參考 vb6-03.vbp 長度換算程式, 在表單中增加三個標籤分別顯示邊長 立方體表面積與立方體體積, 增加一個文字方塊用來輸入邊長, 增加二個標籤用來顯示表面積與體積, 再增加一個關閉按鈕 a) 在邊長文字方塊中輸入邊長數, 則表面積標籤立即顯示對應的立方體表面積數, 體積標籤立即顯示對應的立方體體積數 b) 按關閉 (C) 鈕, 結束程式 7. 參考 vb6-04.vbp 顯示多行文字程式, 在表單視窗中, 增加二個文字方塊一個含水平捲軸與另一個含垂直捲軸, 再增加一個關閉按鈕 a) 在二個文字方塊中顯示下列字串 少小離家老大回, 鄉音無改鬢毛催 ; 兒童相見不相識, 笑問客從何處來 8. 參考 vb6-05.vbp 密碼輸入程式, 加入第二個表單到專案中 在第一個表單中增加二個標籤分別顯示名稱與密碼, 增加二個文字方塊用來輸入使用者名稱與密碼, 再增加一個下一歩按鈕 在第二個表單中加入關閉按鈕 a) 在第一個表單的名稱文字方塊中輸入使用者名稱, 與在密碼文字方塊中輸入使用者密碼 b) 在第一個表單中按下一歩鈕, 則隱藏第一個表單, 顯示第二個表單, 並在第二個表單中顯示使用者名稱與密碼是否正確 c) 在第二個表單中按關閉鈕, 則結束程式 6-30