400 likes | 490 Views
Visual Basic 6.0 學習範本. 第四章 表單與基本敘述. 表單 (Form). 表單 是 VB 建立應用程式輸出入介面的基礎。 程式中有關視窗或對話方塊的產生都是使用 「表單」來設計;也可以使用一張表單專門用 來裝載其他表單會用到的物件,就是將表單當 成 容器 用來裝載一些在應用程式用到的項目。 狹義而言:舉凡欲在螢幕上輸出或輸入文字、 圖形、物件皆需置於表單上。. 功能表列. 主視窗. 工具列. 專案總管視窗. 標題欄名 稱. 工具箱. 屬性視窗. 表單. 表單的建立. 屬性. 說明. 預設值.
E N D
Visual Basic 6.0 學習範本 第四章 表單與基本敘述
表單(Form) • 表單是VB建立應用程式輸出入介面的基礎。 • 程式中有關視窗或對話方塊的產生都是使用 「表單」來設計;也可以使用一張表單專門用 來裝載其他表單會用到的物件,就是將表單當 成容器用來裝載一些在應用程式用到的項目。 • 狹義而言:舉凡欲在螢幕上輸出或輸入文字、 圖形、物件皆需置於表單上。
功能表列 主視窗 工具列 專案總管視窗 標題欄名稱 工具箱 屬性視窗 表單 表單的建立
屬性 說明 預設值 Appearance (外觀) 0-平面:表單以平面顯示 1-立體:表單以立體顯示 1-立體 AutoRedraw (重繪) True:表單縮小或部份內容被覆蓋,當 表單復 原時會重繪其內容。 False:不會重繪表單內容。 False BackColor (背景色) 設定表單工作區背景色 &H8000000F& BorderStyle (邊界) 設定表單邊界格式,共有6種格式,但只能在執行時才會看到設定的結果: 0–沒有框線 1–單線固定 2–大小可調整 3–雙線固定對話方塊 4–單線固定工具視窗 5–可調整工具視窗 2-可調整 Caption(標題) 表單標題欄上的文字 Form1 Font (字型) 選此屬性,會顯示字型對話方塊,在此對話方塊中可設定字型,字型樣式、大小與效果 新細明體 設定表單的屬性
*FontBold (粗體) True:以粗體字顯示字體。 False:非粗體字。 False *FontItalic (斜體) True:以斜體字顯示字體 False:非斜體字 False *FontName (字型名稱) 可用來設定顯示字體的字型名稱,不同字型名稱會顯示不一樣效果的字體。 MS Sans Serif *FontSize (字體大小) 字體大小最好選「12」以上,否則中文字看不清楚。 8 *FontStrikethru刪除線 True:字體顯示時加刪除線 False:不加刪除線 False FontTransparent (重疊) True:字體顯示時與原有文字或圖形重 疊顯示 False:字體顯示時覆蓋原有文字或圖形 True *FontUnderline (底線) True :字體顯示時下面加底線 False :字體下面加底線 False ForeColor (前景色) 設定表單工作區的前景色。 &H80000012& Height (高度) 表單的垂直高度(單位為Twip)。 4635 Icon (圖示) 設定表單縮小時所用的圖示。 [圖示] Left (左邊界限) 表單左上角距螢幕左邊的距離(單位為Twip)。 1035 Name (名稱) 表單物件的名稱。 Form1 Picture (圖案) 設定表單內放置圖形檔名和路徑。 無 Top (上方界限) 表單左上角距螢幕上面的距離(單位為Twip)。 1170 Visible (顯現/隱藏) 表單顯現在螢幕上或隱藏不出現 True Width (寬度) 表單的水平寬度(單位為Twip)。 6495 WindowState 表單執行的狀態 0-一般:表單為設計階段大小。 1-最小化:表單縮為圖示,置於工作列上。 2-最大化:表單放大佔滿整個螢幕。 0-正常
1. 先使用工具箱的工具以及功能表中的指令,在表 單上建立使用者輸出入介面所要放置的控制項。 2. 修改表單上各個物件的屬性值。 3. 編輯該物件要執行的事件程式碼(即程序)和一 般程序碼。 程式設計的基本要領
程式啟動出現黃底畫面空的視窗 在視窗內任意處按一下滑鼠左鍵顯示目前時間 製作一個能在表單上顯示目前時間的視窗。當程式啟動後,出現左下圖畫面;若在表單上任意處快按一下,就將目前時間以黃底紅字顯示如右下圖;若在表單上快按二下,則結束程式執行,回整合開發環境。
Step 4編輯事件程式碼(程序) 1. 編輯Form_Click事件程序 2. 編輯顯示時間的敘述 Step 5啟動程式 Step 6結束程式執行 Step 1設定表單的大小 Step 2更改專案名稱 Step 3設定表單的屬性 1. 更改表單名稱 2. 更改表單標題名稱 3. 設定顯示字體大小 4. 設定前景色 5. 設定背景色
表單的常用事件程序 Form_Load 事件程序 當「表單」被載入執行時,系統會呼叫Form_Load事件程序,我們常在Form_Load事件程序中,用來設定變數的初值。 例如設定score= 0,即預設score變數的初值為0。 Form_Activate 事件程序 當程式執行時,若程式中Form_Load事件程序內有敘述,會先執行Form_Load事件程序,接著再執行Form_Activate事件程序。此程序是用來在表單上顯示初始文字或畫面或是當你撰寫一些不用輸出入介面簡單的程式。
Form_Click 事件程序 當使用者在表單內沒有放置控制項的地方,按一下滑鼠左鍵時就會觸動Form_Click事件程序。 Form_DbClick 事件程序 當使用者在表單內沒有放置其它控制項的地方,快按二下滑鼠左鍵時,就會觸動Form_DblClick事件程序。
Form_Paint 事件程序 • 當「表單」載入執行時,會執行Form_Paint事件程序。 • 如果有其它物件覆蓋在表單上面時,或改變表單大小 的動作,都會觸動Form_Paint事件程序。 • 如果將表單的AutoRedraw屬性設為True時,則覆蓋在 表單上面的物件被移走時,被物件蓋住的資料會自動 還原,由於AutoRedraw屬性值為True,因此 Form_Paint事件程序無作用,讓系統自動更新畫面, 雖然簡便,但是相對的卻要付出多佔記憶體的代價。 • 如將AutoRedraw屬性設為False時,則被物件蓋住的資 料無法還原,就必須在Form_Paint事件中,自行設計 將畫面重繪的工作。
說明表單AutoRedraw屬性設為False時,表單內所顯示文字變化情形。說明表單AutoRedraw屬性設為False時,表單內所顯示文字變化情形。 1 Sub Form_Click () 2Print "What you see is what you get." 3 End Sub 4 Sub Form_DblClick () 5End 1.按 執行程式,在表單內按一下滑鼠觸動Form_Click事件,結果如下圖:
2. 用滑鼠拖曳表單的右邊界,縮小表單如下圖: 3. 再用滑鼠拖曳表單的右邊界,使其恢復原來大小,此 時發現後面的字元沒有復原。 注 意: 1. 因為表單的AutoRedraw(自動重繪)屬性的預設值為False, 所以不會自動重繪表單畫面。如果我們將AutoRedraw屬性改 為True,就會改善前面的情形。 2. AutoRedraw設為True雖方便但浪費記憶體,下一個例子我們 自行設計事件程序來維護畫面。
指令按鈕 (Command Button) 指令按鈕的建立 按鈕上的Command1是Caption屬性的預設屬性值 這是指令按鈕,在此快按兩下,在表單產生命令鈕
屬性 說明 內定值 Cancel True:按 鍵,如同按該指令按鈕。 False:按 鍵無效。 False Caption 指令按鈕上面的標題文字。 Command1 Name 指令按鈕的物件名稱(供程式設計時使用)。 Command1 Value(預設屬性) True 表示已選取該指令按鈕;False 表示沒有選取該按鈕。如果在程式執行時,設定該屬性值為 True,就會觸動該指令按鈕的 Click 事件。 False Visible 決定指令按鈕是顯現或隱藏: True:指令按鈕可看得到。 False:指令按鈕被隱藏。 True Enabled 指令按鈕是否作用: True:指令按鈕有作用。False:指令按鈕無作用。 True Style 指令按鈕的外觀: 0:標準外觀。 1:圖片外觀。 0 Picture 指令按鈕正常狀態圖片。 (無) DownPicture 指令按鈕被按住所顯示圖示。 (無) DisablePicture 指令按鈕的Enabled為False所顯示圖示。 (無) ToolTipText 滑鼠指標移至指令按鈕處,所顯示說明方塊。 -- 設定指令按鈕常用的屬性
2.游標移到鈕處出現 「 這是按鈕」提示訊息,按一 下將目前時間顯示在標籤控制 項內。 3. 按 鈕,將標籤內的時 間隱藏。 4. 按鈕,結束程式執行。 這是使用ToolTipText屬性設定的 將上節範例一在表單上按一下顯示時間,改用指令按鈕,第一個按鈕用來將目前時間透過標籤在表單固定位置顯示,第二個按鈕用來將標籤隱藏,第三個按鈕用來結束程式。游標移到按鈕處顯示「這是按鈕」提示訊息。
預設物件名稱 物件類別 Name (名稱屬性) Caption (標題屬性) ToolTipText 功能說明 Form1 表單 f4_2_1 f4_2_1時間 - 當輸入介面 Label1 標籤 lblShow <空白> <空白> 顯示時間 cmdTime cmdClear cmdEnd Command1 指令按鈕 cmdTime 目前時間 這是按鈕 將時間顯示在標籤上 lblShow Command2 指令按鈕 cmdClear 清除時間 這是按鈕 隱藏標籤內的時間 Command3 指令按鈕 cmdEnd 結束 這是按鈕 結束程式執行
進入「程式編碼」視窗,請按照下面步驟來編程式碼:進入「程式編碼」視窗,請按照下面步驟來編程式碼: j在「物件」下拉式清單中,選取「一般」; 在「程序」下拉式清單中,選取「宣告」; k在cmdTime_Click事件程序中,鍵入下列兩個敘述: lblShow.Visible=True lblShow.Caption=”現在時間:”& Time 在cmdClear_Click事件程序中,鍵入下列敘述: lblShow.Visible=False 在cmdEnd_Click事件程序中,鍵入End敘述。
Visual Basic 的基本敘述 Print 方法 語法:[物件名稱.] Print資料 功能:在指定的物件上顯示文字 1. 在語法中,若有[ ]出現,表示特殊情況下,[ ]內可省略。 2. 物件可為表單、圖片方塊或印表機物件,若省略物件名 稱則內定為表單。 3. 資料為字串常數時,該字串前後必須加上一對雙引號。 4. 若資料為數值常數時,直接寫出數值常數。 5. 若為運算式,則會顯示運算後的結果。
Let 敘述 語法:[Let]變數=常數、變數或運算式 功能:將屬性、常數、變數或運算式的結果指定給左邊的變數。 1. 運算式可以是數值運算式或字串運算式。 2. Let可省略不寫,而且等號左邊必須是變數或屬性名稱。 【例】 Let a = 8 (或a = 8均可) b = 4 * a + 3(運算式) s_name = " 關雲長" (字串常數) lblTest.Caption = "關雲長"(字串常數)
Rem敘述 語法:Rem<註解> 功能:宣告該行為程式註解。 1. Rem是Remark的縮寫。 2. Rem是屬於不可執行的敘述。 3. Rem亦可以用單引號(')來代替。
Print、Let、Rem基本敘述練習 (程式碼請參照光碟) 1. 表單被載入時,Form_Activate事件程序是跟在Form_Load事件 程序之後才執行,它主要目的是在表單上顯示文字與圖形。 2. 每一行敘述前面的數字1、2、3…是為了方便程式解說而 附加 的行號,在編輯程式時不要鍵入。 3. 第1行與第3行:都是註解,只是寫法不同。 4. 第4行:目的只是空一行,以避免輸出結果緊接標題下面。 5.第5行與第6行:都是將資料指定給變數,雖然表達方式不同 ,但效果一樣。 6. 第8行:在表單上顯示變數total的內容。
Cls 方法 語法:[物件名稱.]Cls 功能:清除指定物件上利用方法所顯示的文字或圖形。 End敘述 語法:End 功能:終止程式執行。 1. 執行End敘述時,電腦會自動關閉本程式所有已開啟的檔案、 表單,並清除所有的變數。 2. End敘述可以放在程式中的任意位置來終止程式的執行,通 常都放在「結束」指令按鈕的事件程序中。 3. 若您在VB的整合環境下,啟動未經編譯的原始程式,執行 End敘述時,會終止程式的執行而返回VB整合環境。 4. 若在Windows作業環境下,啟動已編譯過的可執行檔程式, 當執行End敘述時,會自動關閉應用程式所開啟的視窗,並 結束程式執行。
坐標與顏色 • 螢幕上的影像是由很多稱像素(Pixel)所組成的,利 用這些像素的明暗與色彩的配合,可以構成變化多 端的圖形與文字。 • 在電腦螢幕所顯示的影形,實際上都是由一些不連 續的像素所組合而成的。若一個螢幕的水平或垂直 像素的數目愈多,表示螢幕的解析度愈高。 • 目前常用的解析度分別為640 ×480,800 ×600,1024 ×768。在螢幕上畫一條斜線,若螢幕的解析度較低 時,螢幕上會出現鋸齒狀的線段;若解析度較高時, 由於兩點間距變小斜線會較平滑而無鋸齒狀。
(639,0) A(0,0) C(100,0) B(0,100) (0,479) (639,479) 坐標 在螢幕上每個像素都有一個坐標點與之對應,通常將螢幕左上角的坐標設為(0,0),向右為正,向下為正。一般以(X,Y)代表螢幕上某個像素的坐標點,其中水平以X坐標值表示,垂直以Y坐標值表示。下圖螢幕的解析度為640x480時,螢幕上A(0,0),B(0,100),C(100,0)三個座標點。
Twip 單位 在Visual Basic內有關長度描述,內定都是以Twip為單位。Twip是Microsoft公司自定的長度單位,在印表機上Twip與英寸(inch)、公分之間關係如下: 1英寸 = 1440 Twips 1公分 = 567 Twips
FontSize 屬性 語法:[物件名稱.]FontSize = points 功能:設定指定物件上字體的大小 1. 只要在物件中含有文字內容屬性(如Caption或Text),皆可 使用此屬性。 2. 在設定中文字的大小時,FontSize設定值最好大於「12」 , 如此中文字才能明顯且清楚。 3. 若上述語法省略物件名稱時,內定為表單。 4. points(點)表示該文字的字寬字高大小。 [例如] cmdEnd.FontSize=12 表示將cmdEnd物件的字型大小 設定為12。 5. FontSize=72點時,列印時字體大小為1英吋。
CurrentX 與 CurrentY 屬性 語法:[物件名稱].CurrentX = X [物件名稱].CurrentY = Y 功能:設定所指定物件目前的水平或垂直坐標值。 1. 此屬性只能應用於表單(Form)、圖片方塊(Picture Box) 與印表機物件(Printer object) 。 2. 所設定的坐標為相對於該物件工作區左上角位置,而 非相對於螢幕左上角的坐標。
代碼 顏色 代碼 顏色 代碼 顏色 代碼 顏色 0 黑 4 紅 8 深灰 12 淺紅 1 藍 5 紫 9 寶藍 13 淺紫 2 綠 6 棕 10 淺綠 14 黃 3 灰藍 7 灰 11 淺藍 15 白 QBColor 函數 語法:QBColor(color) 功能:設定顏色 1. color為顏色代碼。 2. 顏色代碼為0~15,與QuickBASIC所設定的顏色相 同。其代碼與實際顏色的對照表如下:
以不同顏色、字形大小與位置設定,顯示下面文字。以不同顏色、字形大小與位置設定,顯示下面文字。 (程式碼請參照光碟) 在編輯程式碼時,若將兩行敘述合併成一行時,中間 必須使用冒號(:)分開。例如: j x = 2 : y = 3 k CurrentX = 1000 : CurrentY = 1500
運算式與運算子 運算式是由運算元(Operand)和運算子(Operator)構成的。 例如:a +b,其中a、b是運算元,而+則是運算子。 依運算子的功能將運算式分成下面四大類: 1. 算術運算式 2.字串運算式 3.複合指定運算子 4. 運算式 5. 邏輯運算式
優先順序 運算子 (運算符號) 功能 代數式 VB.NET運算式 1 ^ 指數 AB A^B 2 - 負數 -A -A 3 *,/ 乘/除 A×B,A÷B A*B,A/B 4 \ 取整數除法 A\B 5 Mod 取餘數 A Mod B 6 +,- 加/減 A+B,A-B A+B,A-B 算術運算式 所謂「算術運算式」即為一般數學計算式子,在VB.NET中所使用運算符號(即運算子)與各運算子的優先執行順序如下表:
敘 述 結 果 Print "Visual" + "Basic" VisualBasic Print "中" + "華" 中華 Print "華" + "中" 華中 Print "2" + "3" 23 字串運算式 「+」運算子此功能可將兩個字串頭尾相連,做字串的合併。 若兩個數值資料使用「+」運算子則執行加法運算; 若兩個字串資料使用「+」運算子則執行字串合併; 合併時若一個是數值,另一個是字串,必須使用「&」運算子來進行合併。 + 運算子
敘 述 結 果 Label1.Text = "五為" & 5 五為5 Label1.Text = "2 + 3 = " & (2 + 3) 2 + 3 = 5 Label1.Text = (2+3) & " = 2 + 3" 5 = 2 + 3 & 運算子 & 運算子是VB.NET特殊運算子,它可以將數值運算式所得結果轉成字串資料型態,並且可與前後字串相加,即字串合併。
格式化輸出 - Print Print方法用來將文字顯示在表單、圖片方塊或印表機物件上。若要求畫面美觀對齊,則必須配合其它的函數才能達成。 分號與逗號 在一水平行連續顯示多個資料時,必須在Print方法,在後面接的資料之間,以分號(;)或是逗號(,)來連接,此兩種方式的顯示結果是不相同的。 使用分號連接 - 資料前後相連 1. 輸出的資料若是字串,前後字串都不留空格。 2. 輸出的資料若是負數,前面會有負號「-」,資料後面 會留一個空格。 3.輸出的資料若是正數,資料前後都會留一個空格。
使用逗號連接 - 資料前後有間隔 1. 一個資料依序給予一個固定長度的區域,區域的長 度是根據所選的字型種類、大小等來決定。 2. 如果資料長度超過一個區域時,會多佔一個區域。 3.每一個區域內的資料都是向左靠齊顯示。
Tab 函數 語法:Tab(n) 功能:由目前游標所在那一行的最前面開始算起,將游標 往右移n個位置。 1. Tab函數必須配合Print方法或Print #敘述,才可以使用。 2. n參數表示指定顯示或列印的位置,其位置值是由物件 的最左邊開始算起,最小值為1。至於往右移多少個位 置,在表單中並沒有限制,但是超過表單寬度時,將看 不見字元。 3. 參數的影響外,還受到顯示時所選用字型種類和大小的 影響。
Spc 函數 語法:Spc(n) 功能:在目前游標位置往後插入指定n個空白。 【說明】 1. Spc函數必須配合Print方法和Print #敘述,才可以使用。 2. n參數表插入空格的數量,其值由0~32,767。
Format 函數 語法:Format(運算式[,fmt]) 功能:將數值或字串依指定的fmt格式轉換成字串 1. 運算式可為數值或字串運算式。 2. fmt是代表轉換後字串的格式。若省略此參數,則Format 函數會將數值轉換成字串,並將正數前面的空白去除。 3. 常用的Format輸出格式符號如下表:
符號 說 明 0 代表一個位數,如果沒有數值就補上0。例如:Format(3,"00"),結果為03。 # 代表一個位數,如果沒有數值不補0。例如Format(-3,"###"),結果為-3。 . 小數點。例如:Format(3,"##.00"),結果為3.00。 % 以百分比顯示數值。例如:Format(0.3,"0.00%"),結果為30.00%。 , 千位分隔。例如:Format(1234, "#,###"),結果為1,234 -、+、$、(、)、「空格」 照左列符號字元顯示。 例如:Format(1234.5,"$#,##0.00"),結果為$1,234.50 d 顯示日期,其值由1~31。 m 顯示月份,其值由1~12。 yyyy 顯示年份,其值由100~9999。例如: Format(Now,"m/d/yyyy"),結果為1/7/1997。(Now函數可取得目前時間) h 顯示小時值,其值由0~23。 m 顯示分鐘值,其值由0~59。 s 顯示秒鐘值,其值由0~59。 AM/PM 使用12小時制。 例如:Format(Now,"m-d-yy h:m:s AM/PM"),結果為1-7-97 4:35:35 PM