VB的界面设计
第二章 VB的界面設計
?第二章? VB 的界面設計
2.1? VB 用戶界面設計基礎
1. 概述
????? ? 界面的設計有兩步:先繪制控件,然后確定控件屬性。
??????? 繪制控件:在工具箱里單擊想畫的控件,在窗體里按下鼠標并拖曳,然后松開鼠標即可。確定屬性:先選中控件,然后按 F4 鍵或單擊工具欄上的屬性窗口進入屬性(Properties)窗口,再在屬性窗口中找到要設置的屬性并進行設置。
2. 常用屬性的設置
(1) Name 屬性
???? ?? 對象都有名字,計算機把名字看成對象于對象之間的根本差異,因此在同一窗體里不許出現重名的情況(除非這是一個控件數組),且名字不得超過 40 個字。
??????? 在簡單的程序里,給控件命名不是很必要,完全可以使用控件 Name 屬性的缺省值。例如 Text1 。但在有幾十個控件的復雜窗體里,就很難區分它們。所以, VB 推薦由三個小寫字母的前綴和一個第一個字母為大寫的描述性單詞組成的名字。例如 cmdMyButton 是一個命令按鈕(前綴是 cmd)
推薦的前綴
| 對象 | 前綴 | 例子 |
| 確認框(Check Box) | chk | chkCareerChioce? |
| 組合框(Combo Box) | cbo | cboCrimesCommitted? |
| 命令鈕(Command Button) | cmd | cmdExit? |
| 數據庫控件(Data Control) | dat | datTopSecretInfo? |
| 目錄列表框(Directory List Box) | dir | dirTree? |
| 驅動器列表框(Drive List Box) | drv | drvHardDisk? |
| 文件列表框(File List Box) | fil | filDocuments? |
| 窗體(Form) | frm | frm1040Tax? |
| 框架(Frame) | fra | fraGroupButtons? |
| 水平滾動條(Horizontal Scroll Bar) | hsb | hsbTemperature? |
| 圖形(Image) | img | imgPrettyDrawing? |
| 標簽(Label) | lbl | lblFakeName? |
| 線(Line) | lin | linBorder? |
| 列表框(List Box) | lst | lstCandidates? |
| 菜單(Menu) | mnu | mnuHamAndEggs? |
| 選項鈕(Option Button) | opt | optStation101? |
| 圖形框(Picture Box) | pic | picPrettyPicture? |
| 幾何圖形(Shape) | shp | shpUpOrShipOut? |
| 文本框(Text Box) | txt | txtWarning? |
| 垂直滾動條(Vertical Scroll Bar) | vsb | vsbMoneyRaised |
(2) Caption 屬性
??? ? Caption 即標題,是可以在對象外觀上直接看見的文本,可以長達 255 字符,包括空格和標點符號,比如一個叫 cmdOk 的命令鈕,它的 Caption 屬性就可以是� Ok�。 注意:并不是所有的對象都有此屬性,比如文本框、圖片框、線條等就沒有。
????? 為按鈕設置熱鍵 :在設置 Caption 屬性時,在需要加下劃線的字母前加上 �&� 符號,例如 �&File�,輸出的就是� F ile�,這樣就可以通過按 ALT 鍵和標題上那個帶下劃線的字母來選取它了 , 不必為此編任何代碼。
Name 和 caption 的比較 :
1) Name 是系統用來識別對象的,編程時需要用它來指代各對象; Caption 是給用戶看的,提示用戶該對象的作用;
2) Name 可以采用系統默認的名稱,但 Caption 應該根據實際情況改成意義明了的名詞;
3)所有對象都有 Name ,但不一定都有 Caption ;
(3)Top , Left 屬性
????? ? 這兩個屬性決定對象的位置。只有兩種情況需要在屬性窗口里設置這兩個屬性:第一種是用戶沒有鼠標,第二種是程序員需要十分精確地設定這兩個值。當選中對象,單擊并拖曳它的時候,便在修改這兩個值了。
(4) Height , Width 屬性
????? ? 這兩個屬性決定了對象的大小,當選中控件時,它周圍出現八個小黑方塊,把鼠標指向這些方塊,鼠標指針將變成一個雙向的箭頭,這時按下鼠標并拖曳它,即可改變控件的大小,也就改變了 Height , Width 屬性。
?
2.2? 創建窗體
1.?? 窗體的屬性
(1)?? 常用屬性簡介
| 屬性 | 名稱 | 說明 |
| Name | 窗體名稱 | 系統識別窗體的標識名,一個窗體名必須以一個字母開頭,可包含數字和下劃線,但不能包含空格和標點符號。 |
| Caption | 窗體標題 | 出現在窗體標題欄中的文本內容 |
| Icon | 窗體圖標 | 這個屬性是用戶經常要使用的一種屬性。當用戶的應用程序在工具條上最小化或在Windows桌面上變為一個獨立應用程序時,該屬性決定將采用何種圖標,窗體控制框里的圖標也由它決定。 |
| BackColor | 窗體背景色 | 可以從屬性框里彈出調色板,選擇所需要的顏色 |
| ForeColor | 窗體前景色 | 窗體上打印文字的顏色 |
| BorderStyle | 邊框風格 | 這個屬性決定了窗體邊框的樣式,共有6種屬性值。改變窗體的BordrStyle屬性后,窗體在屏幕上沒有變化,它只在運行時才變為所要求的樣子。 |
| Apearance | 外形 | 這個屬性用來決定控件是否采用三維效果 |
| ControlBox | 控件按鈕控件按鈕 | 用來決定是否采用 控件框的屬性,僅在程序運行時才有效。 |
| Font | 字體 | 用來改變該窗體上顯示信息的字體、字型和字號,它控制著直接在窗體上打印的文本顯示。 |
| Visible | 可見性 | 該屬性決定窗體是否可見, 默認情況下是可見的。錯誤地改變其值是很危險的,窗體會從眼前消失, |
| WindowState | 窗體狀態 | 指定窗體在運行時的三種狀態:正常、最小化、最大化。 |
| Enabled | 活動性 | 默認值為True,決定窗體能否被訪問。 |
| Left、Top、Height、Width | 左邊距、頂邊距、高度、寬度 | 決定窗體在屏幕上的位置及窗體大小。 |
(2)設置屬性的方法
1) 在設計態通過屬性窗口設置
? 直接在屬性窗口中選擇或輸入既可。
2) 在程序代碼中改變屬性值
? 代碼中的格式為: ? 對象名 . 屬性 = 屬性值
? 例: Form1.BackColor=RGB (255 , 0 , 0)
2.?? 窗體的常用方法
(1) Hide 方法
???????? 用以隱藏 MDIForm 或 Form 對象,但不能使其卸載。
語法 : object.Hide
???????? object? 所在處代表一個對象表達式,其值為�應用于�列表中的一個對象。如果省略 object ,則帶有焦點的窗體就認為是該 object 。
說明 :
隱藏窗體時,它就從屏幕上被刪除,并將其 Visible 屬性設置為 False 。 用戶將無法訪問隱藏窗體上的控件,但是對于運行中的 Visual Basic 應用程序,或對于通過 DDE 與該應用程序通訊的進程及對于 Timer 控件的事件,隱藏窗體的控件仍然是可用的。
??? 窗體被隱藏時,用戶只有等到被隱藏窗體的事件過程的全部代碼執行完后才能夠與該應用程序交互。
? �如果調用 Hide 方法時窗體還沒有加載,那么 Hide 方法將加載該窗體但不顯示它。
(2) Move 方法
??????? 用以移動 MDIForm 、 Form 或控件。
語法 : object . Move ?left, top, width, height
???? ? Move 方法的語法包含下列部分:?
| 部分 | 描述 |
| object | 可選的。一個對象表達式,其值為�應用于�列表中的一個對象。如果省略 object ,帶有焦點的窗體缺省為 object 。 |
| left | 必需的。單精度值,指示 object 左邊的水平坐標 (x- 軸 ) 。 |
| top | 可選的。單精度值,指示 object 頂邊的垂直坐標 (y- 軸 ) 。 ? |
| Width | 可選的。單精度值,指示 object 新的寬度。 |
| height | 可選的。單精度值,指示 object 新的高度。 |
說明: 只有 left 參數是必須的。但是,要指定任何其它的參數,必須先指定出現在語法中該參數前面的全部參數。例如,如果不先指定 left 和 top 參數,則無法指定 width 參數。任何沒有指定的尾部的參數則保持不變。
(3) Print 方法
???? ??? 在 Immediate 窗口中顯示文本。
語法: object . Print [ outputlist]
???????? Print 方法的語法具有下列對象限定符和部分:
| 部分 | 描述 |
| object | 必需的。對象表達式,其值為�應用于�列表中的對象。 |
| outputlist | 可選的。要打印的表達式或表達式的列表。如果省略,則打印一空白行。 |
? outputlist 參數具有以下語法和部分:
? {Spc(n) | Tab(n)} expression charpos
| 部分 | 描述 |
| Spc(n) | 可選的。用來在輸出中插入空白字符,這里, n 為要插入的空白字符數。 |
| Tab(n) | 可選的。用來將插入點定位在絕對列號上,這里, n 為列號。使用無參數的 Tab(n) 將插入點定位在下一個打印區的起始位置。 |
| expression | 可選。要打印的數值表達式或字符串表達式。 |
| Charpos | 可選。指定下個字符的插入點。使用分號 (;) 直接將插入點定位在上一個被顯示的字符之后。使用 Tab(n) 將插入點定位在絕對列號上。使用無參數的 Tab 將插入點定位在下一個打印區的起始位置。如果省略 charpos ,則在下一行打印下一字符。 |
說明 :
??????? �可以用空白或分號來分隔多個表達式。
????? ? �對系統指定的國別設置,用小數點分隔符將所有打印到 Immediate 視窗的數據正確格式化。關鍵字要用適用于主應用程序的語言輸出。
????? ? �對于 Boolean 數據,或者打印 True 或者打印 False 。根據主機應用程序的地區設置來翻譯 True 和 False 關鍵字。? �使用系統能識別的標準短日期格式書寫 Date 數據。當日期或時間部件丟失或為零時,只書寫已提供的部件。
????? ?? � 如果 outputlist 數據是 Empty ,則無內容可寫。但是,如果 outputlist 數據是 Null ,則輸出 Null 。在輸出 Null 關鍵字時,要把關鍵字正確翻譯出來。
????? ?? �要把錯誤數據作為 Error errorcode 輸出。在輸出 Error 關鍵字時,要把關鍵字正確翻譯出來。
????? ?? �如果在具有缺省顯示空間的模塊外使用此方法,則需要 object 。例如,如果沒有指定對象就在標準模塊上調用此方法,則將導致錯誤發生,但是,如果在窗體模塊上進行調用,則會在窗體上顯示� outputlist�。
注意 : 因為 Print 方法是按照字符比例進行打印,所以字符數與字符所占據的寬度固定的列的數目無關。例如,像 � 這樣的寬字母占據的寬度超過一固定列寬,而像 "i" 這樣的窄字母占據的寬度則較小。考慮到要使用比平均字符更寬的空間,表列一定要留有足夠余地。另外,也可以使用固定間距的字體(像 Courier 字體)來確保每一字符均只占一列。
(4) PrintFrom 方法
用以將 Form 對象的圖象逐位發送給打印機。
? 語法: object.PrintForm
? 說明 : PrintForm 將打印 Form 對象的全部可見對象和位圖。在繪制圖形時,如果 AutoRedraw 屬性為 True ,則在運行時 PrintForm 將打印 Form 對象或 PictureBox 控件上的圖形。
?????? � PrintForm 所使用的打印機是由操作系統的控制面板中的設置來決定。
(5) Refresh 方法
強制全部重繪一個窗體或控件。
? 語法: object.Refresh
? 說明: 在下列情況下使用 Refresh 方法:
????? ? �在另一個窗體被加載時顯示一個窗體的全部。
????? ? �更新諸如 FileListBox 控件之類的文件系統列表框的內容。
????? ? � 更新 Data 控件的數據結構。
????? ? Refresh 方法不能用于 MDI 窗體,但能用于 MDI 子窗體。不能在 Menu 或 Timer 控件上使用 Refresh 方法。
????? ? 通常,如果沒有事件發生,窗體或控件的繪制是自動處理的。但是,有些情況下希望窗體或控件立即更新。例如,如果使用文件列表框、目錄列表框或者驅動器列表框顯示當前的目錄結構狀態,當目錄結構發生變化時可以使用 Refresh 更新列表。
????? ? 可以在 Data 控件上使用 Refresh 方法來打開或重新打開數據庫(如果 DatabaseName, ReadOnly, Exclusive 或 Connect 屬性的設置值發生改變),并能重建控件的 Recordset 屬性內的 dynaset 。
(6) Show 方法
??????? 用以顯示 MDIForm 或 Form 對象。
? 語法: object.Show style, ownerform
??????? Show 方法的語法包含下列部分:
| 部分 | 描述 |
| object | 可選的。一個對象表達式,其值為�應用于�列表中的一個對象。如果省略 object ,則與活動窗體模塊關聯的窗體缺省為 object 。 |
| Style | 可選的。一個整數,它用以決定窗體是模式還是無模式 。如果 style 為 0 ,則窗體是無模式的;如果 style 為 1 ,則窗體是模式的。 |
| Ownerform | 可選的。字符串表達式,指出部件所屬的窗體被顯示。對于標準的 Visual Basic 窗體,使用關鍵字 Me 。 |
說明 :
??????? �如果調用 Show 方法時指定的窗體沒有裝載, Visual Basic 將自動裝載該窗體。
??????? �當 Show 在顯示無模式窗體時,隨后遇到的代碼則要執行。當 Show 在顯示模式窗體 (modal form) 時,則隨后的代碼直到該窗體被隱藏或卸載時才能執行。
??????? �當 Show 在顯示模式窗體時,除了模式窗體中的對象之外不能進行輸入(鍵盤或鼠標單擊)。對其它窗體進行輸入前程序必須隱藏或卸載模式窗體(通常是處于響應用戶某些操作狀態)。 MDIForm 不能是形式的。
??????? �在模式窗體顯示時,雖然應用程序中的其它窗體失效,但其它應用程序不會失效。
?????? ? �應用程序的啟動窗體在其 Load 事件調用后會自動出現。
? 下面的例子說明如何使用 ownerform 參數:
?????? ? Private Sub cmdShowResults_Click()? ' 顯示模式窗體 frmResults.? frmResults.Show vbModal, Me End Sub
(7) Cls 方法
??????? 清除運行時 Form 或 PictureBox 所生成的圖形和文本。
語法: object.Cls
說明 :
??????? � Cls 將清除圖形和打印語句在運行時所產生的文本和圖形,而設計時在 Form 中使用 Picture 屬性設置的背景位圖和放置的控件不受 Cls 影響。如果激活 Cls 之前 AutoRedraw 屬性設置為 False , 調用時該屬性設置為 True ,則放置在 Form 或 PictureBox 中的圖形和文本也不受影響。 這就是說,通過對正在處理的對象的 AutoRedraw 屬性進行操作,可以保持 Form 或 PictureBox 中的圖形和文本。
??????? �調用 Cls 之后, object 的 CurrentX 和 CurrentY 屬性復位為 0 。
3. 窗體的常用事件
(1) ?Load 事件
? 這個事件發生在窗體被裝入內存時,且發生在窗體出現在屏幕之前。窗體出現之前, Visual Basic 會看一看 Load 事件里有沒有代碼,如果有,那么它先執行這些代碼,再讓窗體出現在屏幕上。
(2) Click 事件, Dblclick 事件
這兩個事件在單擊或雙擊窗體時發生。不過單擊窗體里的控件時,窗體的 Click 事件并不會發生, Visual Basic 會去看控件的 Click 事件里有沒有代碼。
(3) Activate ( 活動事件 ) 與 Deactivate (非活動事件)
? 顯示多個窗體時,可以從一個窗體切換到另一個窗體。每次激活一個窗體時,發生 Activate 事件,而前一個窗體發生 Deactivate 事件。
(4) Resize 事件
? 在窗體被改變大小時會觸發此事件。
4. 窗體的控制
(1) 裝入或卸出窗體
? 要裝入或卸出窗體,用 Load 或 Unload 語句。
裝入窗體 : Load formName
卸出窗體 : UnLoad formName
FormName 變量是要裝入或卸出的窗體名。 Load 語句只是把窗體裝入內存,并不顯示出來,要顯示窗體可以使用窗體的 Show 方法。
(2) 顯示或隱藏窗體
要顯示或隱藏窗體,用 Show 或 Hide 方法。若尚未裝入內存則先裝入再顯示。
顯示窗體: ? formName.show mode
隱藏窗體: ?formName.hide
? FormName 變量是窗體名 , 可選變元 mode 為 0 (缺省值)時窗體為非模態,為 1 時窗體為模態。模態窗體完全占有應用程序控制權,不允許切換到別的應用程序,除非關閉!而非模態窗體則反之。
? (3) END 語句
END 語句的功能是終止應用程序的執行,并從內存卸在所有窗體。語法是: END
2.3 控件
1.? 常用控件介紹
?? (1)標準控件一
| TextBox 文本框 | Timer 計時器 | HscrollBar 水平滾動條 |
| ListBox 列表框 | Pointer 指針 | VScrollBar 垂直滾動條 |
| CheckBox 復選框 | Label 標簽 | DirListBox 文件夾列表框 |
| PictureBox 圖片框 | Line 線條 | DriveListBox 驅動器列表框 |
| ComboBox 組合框 | Shape 圖形 | FileListBox 文件列表框 |
| OptionButton 選項按鈕 | Image 圖象 | Data 數據控件 |
| CommandButton 命令按鈕 | Frame 框架 | OLE 控件 |
(2)?? 常用控件的屬性、方法和事件
| 公共屬性 | Name 、 Caption 、 Enabled 、 Fantsize 、 Height 、 Width 、 Index 、 Left 、 Top 、 TabStop |
| 公共方法 | Move 、 Refresh 、 Setfocus (設置焦點) |
| 公共事件 | Click 、 DblClick 、 LostFocus (失去焦點) |
| 控件名稱 | 屬性、方法、事件 | 說明 | |
| TextBox? 文本框 (用于接受用戶在框內輸入的內容) | Text 屬性 | 即用戶從文本框輸入的內容 | |
| PasswordChar 屬性 | 設置口令時用的掩碼,如:用 * 代替實際輸入的內容 | ||
| MaxLength 屬性 | 最大長度,缺省值是 0 ,即可以輸入任意個字符 | ||
| MultiLine 屬性 | 為 True 時可以多行文本,為 False 時只能輸入一行文本 | ||
| Alignment 屬性 | 文本在框中的對齊方式: 0= 左對齊, 1= 右對齊, 2= 居中 | ||
| Chang 事件 | 當框中的文本內容發生變化時觸發該事件 | ||
| LostFocus 事件 | 當光標離開文本框時觸發該事件 | ||
| Label 標簽(用于在窗體上添加文字說明) | Alignment 屬性 | Caption 文本的對齊方式: 0= 左對齊, 1= 右對齊, 2= 居中 | |
| WordWrap 屬性 | 為 True 時可根據標簽大小自動換行 | ||
| AutoSize 屬性 | 自動調節大小,為 True 時可根據文本大小自動調整標簽大小,為 False 時標簽大小不能改變,過長的文本被截掉 | ||
| ListBox 列表框 (用于列出可供用戶選擇的項目列表) | List 屬性 | 用于保存列表內容,訪問: [ 對象名 ] . List (列表項序號)列表項的序號由上到下依次為 0 、 1 、 2 、 3 厖 | |
| ListCount 屬性 | 列表項數目 | ||
| ListIndex 屬性 | 列表項索引,其值為最后選中的列表項序號,第一個為 0 ,如果未選中任何表項,其值為 -1 。 | ||
| Text 屬性 | 列表項正文,其值為最后選中的列表項的文本,它與 List (ListIndex)相同。 | ||
| Columns 屬性 | 列表框顯示形式取 0 時為一列顯示所有行,其他值為多列。 | ||
| Sort 屬性 | 排序屬性,為 True 時,列表項按 ASCII 碼排序,為 False 時,則不排序。 | ||
| AddItem 方法 | 添加列表項,使用格式: [ 對象名 .] AddItem< 列表項文本 > [ ,插入位置序號 ] 若不指定位置,則插入到列表末尾。 | ||
| ?Clear 方法 | 刪除列表所有項目 | ||
| RemoveItem 方法 | 刪除列表項,使用格式: [ 對象名 .] RemoveItem ? 刪除項序號 | ||
| PictureBox 圖片框 Image? 圖象(用來把圖形放入程序里) | AutoSize/Stretch 屬性 | 調整圖片框以適應圖象 / 調整圖象以適應外框 | |
| Picture 屬性 | 決定控件中顯示的圖象 | ||
| 裝入圖形 : ?? imgMyHand.Picture = LoadPicture ( 揷:\graphics\hand.bmp� ) 刪除圖形 : ? imgMyHand.Picture = LoadPicture ( � � ) | |||
| ComboBox 組合框(將列表框和文本框結合在一起) | Style 屬性 | 外觀屬性:取 0 時,系統創建一個帶下拉式列表框的組合框;為 1 時,系統創建一個由文本框和列表框直接組合在一起的簡單組合框,可以從列表框中選擇,也可以直接在文本框中輸入;為 2 時,系統創建一個沒有文本框的下拉式列表框,單擊列表框上的按鈕才顯示文本框,用戶不能在文本框中輸入,只能在列表框中選擇。 | |
| Text 屬性 | 其值為用戶從列表框中選定的文本或直接輸入的文本。 | ||
| AddItem 方法 | 添加列表項,使用格式: [ 對象名 .] AddItem< 列表項文本 > [ ,插入位置序號 ] 若不指定位置,則插入到列表末尾。 | ||
| Clear 方法 | 刪除列表所有項目 | ||
| RemoveItem 方法 | 刪除列表項,使用格式: [ 對象名 .] RemoveItem ? 刪除項序號 | ||
| CommandButton 命令按鈕 | Cancel 屬性 | 取消屬性,它為 True 時 , 按〖 ESC 〗即等于單擊此按鈕。 | |
| Default 屬性 | 缺省屬性,它為 True 時 , 按回車鍵即等于單擊此按鈕。 | ||
| Timer 計時器 | Interval 屬性 | 兩次調用 Timer 事件的事件間隔,用于創建動態效果。 | |
| Frame 框架 CheckBox 復選框OptionButton 選項按鈕 | Alignment 屬性 | 決定它們的對齊方式, 0= 左對齊, 1= 右對齊。 | |
| Value 屬性 | 決定它們是否被選中的屬性 |
2.? 常用控件的使用辨析
(1)文本框和標簽的區別:
? 文本框通常用于向計算機輸入信息,而標簽通常用于輸出信息。文本框是一個十分重要的控件,因為由復選框和選項按鈕向程序輸入的信息畢竟只有少數的幾條信息而已。標簽和文本框的區別很小,標簽可以看成是一個在運行時不能修改正文的文本框,因此標簽主要用于輸出信息。
(2) ?Label 的 AutoSize 屬性和 WordWrap 屬性
�為了使標簽具有垂直伸展和字換行處理,必須設置它的 AutoSize 屬性和 WordWrap 屬性同時為 True 。
�AutoSize 屬性為 False , WordWrap 屬性為 False 時,若標簽不夠高而 Caption 太長時, Caption 將被切割掉。
�AutoSize 屬性為 False , WordWrap 屬性為 True 時,情況也如此。
�AutoSize 屬性為 True , WordWrap 屬性為 False 時,表示可以水平伸展,但只顯示一行信息。
(3) PictureBox 和 Image 的 Stretch 屬性和 AutoSize 屬性
�Image 只有 Stretch 屬性,而 PictureBox 只有 AutoSize 屬性。
�AutoSize 屬性設為 True ,則 PictureBox 改變自己的大小來適應其中的圖形。
�Stretch 屬性設為 True ,則 Image 中的圖形將改變自己的大小來適應外面的邊框。
(4)Frame 框架、 CheckBox 復選框、 OptionButton 選項按鈕的區別:
�復選框和選項按鈕用于向程序輸入信息 , 框架用來對復選框和選項按鈕進行分組。
? ? �復選框選中時會在小方框里打一個鉤,選項按鈕選中時會在小圓圈里點一個點。
3 .控件使用舉例
?? 例 3 、 4
2.4?? 定制菜單
1.? 菜單概述
Windows 中的菜單一般由菜單條、菜單、菜單項、子菜單、彈出式菜單組成。
2.? 普通菜單的設計
(1) 給菜單命名
?? 菜單標題和菜單命令也有 Caption 和 Name 屬性,設置了這兩個屬性就等于創建了菜單。 Name 是一個抽象名稱, Caption 是屏幕上可見的,可在 Caption 里加入 �&� 來設置熱鍵。
(2) ? 增加和刪除菜單
? ?在 Menu Editor 中部有三個命令鈕分別是 下一個、插入、刪除。 插入可用來增加新的菜單。在這三個鍵下面的 Caption 列表框里選中菜單項(這時它的底色就變成深藍色),單擊 插入鍵, Visual Basic 將上一個增亮菜單下推并增亮一空行,就可以輸入新菜單名和標題了。 刪除鍵可用來刪掉菜單。選中要刪掉的菜單,單擊 Delete 鍵就可以刪掉它了。
(3) ? 移動菜單標題
? ?有四種情況:向上移動,向下移動,向左縮排,向右縮排,選中某一菜單標題,安上下箭頭,則這個菜單將上下移動到你喜歡的位置上,這也決定了它在界面中的位置。如果按左右箭頭,情況則有所不同。由于菜單是分級的,所以,如果它沒有縮排,則它是一個菜單標題;如果它縮排一次,那么它將變成一個菜單命令;如果縮排兩次,那么它將成為一個子菜單命令。 VB 里可以總共設計四層子菜單。
(4) ? 設置分離條
?? 分離條是指在菜單中將命令分組的線, VB 將分離條也看成一個菜單項,它也需要 Caption 和 Name 屬性,而且也有其它屬性,分離條與菜單項的區別是分離條的 Caption 屬性必須是連字號即減號。也就是,當設置了一個 Caption 屬性為 �-� 的菜單項時,實際上就設置了一個分離條,分離條的名字可以是 barFile1 之類,以表明分離條的位置。
(5) 菜單的各種簡單屬性
? 在菜單編輯器里有許多確認框和一些文本框及一個下拉式的列表框,這些決定了菜單的各種屬性。
1) Checked 復選屬性
? 這個屬性值設置為真,將在菜單命令左邊產生一個打勾的確認標志。
2) Enabled 有效屬性
? 各種各樣的用戶會產生千奇百怪的操作,在許多 Edit 菜單里都會有不同形式的讓菜單命令模糊的情況。 Enabled 屬性為真,則菜單命令是清晰的, Enabled 屬性為假,則菜單命令是模糊的,這時用戶就不能選中這個菜單項了。
3) Visible 可見屬性
?? 對暫時不用的菜單, 如果把 Visible 屬性設為假,則菜單根本不會出現在屏幕上。這樣做比把 Enabled 屬性設為假顯得更加干脆!
4) Index 屬性
? 可以生成菜單命令數組,用索引號區分開。例如向 File 菜單中添加一系列最近打開的文件名。添加菜單可用 Load 方法。以上屬性可以在運行時設置,形成動態的菜單的情況。
例如:
mnuUndo.Enabled = False
mnuProperty.Visible = False
?? 還可以改變 Caption 等屬性。
? mnuUndo.Caption = 揜edo�
(6)為每個菜單項編寫事件過程代碼
3. 生成彈出式菜單(或浮動菜單)
?? 幾乎每個 Windows 應用程序都提供彈出式菜單,用戶可以右鍵單擊窗體或控件取得這個菜單。彈出式菜單也屬于普通菜單,只是不固定在窗體上,而是可以在任何地方顯示。
?? 彈出式菜單用 PopupMenu 方法調用。假設已經用菜單編輯器生成了名為 mnuedit 的菜單,則可以在 MouseUp 事件加入如下代碼就可以生成彈出式菜單:
? If Button = 2 Then PopupMenu mnuedit
4 .菜單設計示例
? 例 5
2.5?? 設計狀態條、工具欄、進程條等
1. ? 創建狀態條
?? 選中狀態條,按 F4 鍵進入屬性窗口,雙擊(Custom)可以進入主要的設置窗口 SBarCtrl 屬性窗口。
(1) 選擇面板形狀
? 在 SBarCtrl 屬性窗口里選擇 General 標簽,在 Style 列表框里選擇多面板(缺省形式)或單面板簡單文本形式。
(2) 添加或刪除狀態條面板
?? 在 SBarCtrl 屬性窗口里選擇 Panels 標簽,單擊 Insert 按鈕添加一個面板,或單擊 Remove 按鈕刪除一個面板。
(3) 在單面板里顯示文本
? 在 SBarCtrl 屬性窗口里選擇 General 標簽,在 SimpleText 框里輸入想顯示在狀態條面板里的文本。用代碼顯示的方式是:
? StatusBar1.SimpleText = "New string to appear"
(4) 在多面板里顯示文本或圖形
1). 在 SBarCtrl 屬性窗口里選擇 Panels 標簽,用 Index 旁的按鈕選擇面板序號。
2). 在 Text 框里輸入想顯示在狀態條面板里的文本。
3). 如果想加入圖形,單擊 Browse 按鈕打開一個圖形選擇對話框,選擇想加入的圖形,然后單擊打開按鈕。
4). 最后按確定按鈕。
5). 用代碼顯示的方式是: StatusBar1.Panels(x).Text = "New string to appear"
6). 編寫代碼
如果是一個單面板狀態條,當用戶單擊狀態條時,只需用下面的事件過程來響應:
Private Sub StatusBar1_Click()
End Sub
?? 如果是一個多面板狀態條,就需要鑒別用戶單擊的是哪一個面板,可用下面的事件過程來識別用戶所單擊的面板:
Private Sub StatusBar1_PanelClick(ByVal Panel As Panel)
? Select Case Panel.Index
? Case 1
??? ? 'Code to follow if user clicks the first panel
? Case 2
??? ??? 'Code to follow if user clicks the second panel
? Case 3
???? ?? 'Code to follow if user clicks the third panel
? End Select
? End Sub
2. ? 創建工具欄
1. 建立工具條
1). 在工具箱里單擊工具條圖標,拖到窗體的任何位置, Visual Basic 自動將 ToolBar 移到頂部。
2). 按 F4 鍵打開屬性窗口。
3). 雙擊(Custom),打開 ToolBar 屬性窗口。
4). 選擇 Buttons 標簽。
5). 單擊 Insert 按鈕, Visual Basic 就會在你的工具條上顯示一個空按鈕,現在為你的每一個按鈕重復這一步。
6). 單擊確定按鈕。
?? 如果想把按鈕分組,首先生成一個分隔的按鈕,再在剛才提到的對話框里將這個按鈕的 Style 屬性改為 3-Separator 。
(2) 為工具條增加圖畫
1). 在 Visual Basic 工具箱里單擊 ImageList 圖標,并將它拖到窗體的任何位置(位置不重要,因為它總是不可見的)。
2). 按 F4 打開屬性窗口。
3). 雙擊(Custom),打開 ImageListCtrl 屬性窗口。
4). 選擇 Image 標簽。
5). 單擊 Insert Picture ,在現在圖形的對話框里選擇想使用的位圖或圖標,然后單擊打開按鈕。為每個想添加圖形的工具條按鈕重復此步。
6). 單擊確定按鈕。
7). 單擊工具條,按 F4 ,雙擊(Custom),顯示 ToolBar 屬性對話框。
8). 選擇 General 標簽,在 ImageList 框里選擇剛才添加的 ImageList 控件。
9). 選擇 Buttons 標簽,單擊緊挨 Index 框的向左或向右箭頭以選擇一個按鈕序號。出現在工具條最左邊的按鈕序號為 1 。
10). 在 Image 框里輸入一個數,輸入為 1 ,則顯示剛才 ImageList 控件里的第一個圖形,輸入為 2 ,則顯示剛才 ImageList 控件里的第二個圖形。
11). 為每個按鈕重復第 10 步。
12). 單擊確定按鈕,現在 Visual Basic 就會在工具條上顯示精美的圖形了。
(3) 為工具條添加文本信息
? 在 ToolBar 屬性對話框中選擇 Buttons 標簽,在 Caption 框里輸入想顯示在按鈕上的文本。
(4) 添加 ToolTips
? ToolTips 是一種當點到工具按鈕時彈出的小標簽。 ToolTips 很方便,可以告訴那些新手每個按鈕是干什么用的。在剛才提到的 ToolBar 屬性對話框中選擇 Buttons 標簽,在 ToolTipText 框里輸入想作為 ToolTip 的文本。
(5) 編寫代碼
? 雙擊工具條,以下面的格式輸入代碼就可以了:
Private Sub Toolbar1_ButtonClick(ByVal Button As Button)
? Select Case Button.Index
? Case 1
? 'Code to follow if user clicks the first button
? Case 2
??? ? 'Code to follow if user clicks the second button
? Case 3
??? ? 'Code to follow if user clicks the third button
? End Select
?End Sub
3. ? 創建進程條
?? 進程條的三個屬性:
(1). Min 屬性代表進程條全空時的值,缺省時為 0 。
(2). Max 屬性代表進程條全空時的值,缺省時為 100 。
(3) Value 屬性代表進程條當前的值(不用在屬性窗口里找這個屬性,它不出現在屬性窗口中,但它的確存在),它大于 Min 屬性,小于 Max 屬性。改變 Value 屬性的值將改變進程條的進度顯示。
?? 為了了解進程條的功能,在窗體里添加一個進程條和一個命令鈕,雙擊命令鈕進入代碼窗口,鍵入如下代碼:
Private Sub Command1_Click()
If ProgressBar1.Value < ProgressBar1.Max Then
??? ? ProgressBar1.Value = ProgressBar1.Value + 5
? Else
????? ProgressBar1.Visible = False �當進程條滿了的時候讓進程條消失
? End If
End Sub
4. ? 創建滑塊
(1) . 選擇滑塊的外觀
1). Orientation 屬性決定滑塊的方位,可以是垂直的或水平的滑塊。
2). TickStyle 屬性決定滑塊標記的樣子。
3). TickFrequency 屬性規定了沿著滑塊的標記的間隔大小,缺省的狀態是 1 ,表明每個可能值都出現標記,如果把值設置為 3 ,則每三個可能值出現一個標記。
(2) 滑塊的 Min , Max , Value 屬性
?? 這三個屬性和進程條的這三個屬性差不多, Min , Max 表示滑塊的最小和最大值, Value 表示進程條的當前值。
(3) 滑塊的 LargeChange , SmallChange 屬性
? LargeChange 規定了當用戶用鼠標單擊滑塊時,滑塊可移動的距離。 SmallChange 規定了用戶按左箭頭或右箭頭時滑塊的移動距離。
5. 創建 TabStrip 頁框控件
(1) 設置樣式
?? 在 TabStrip 屬性窗口里選擇 General 標簽,在 Style 列表框里選擇 Tabs 或 Buttons 樣式。
(2) 規定 TabStrip 的標題和 ToolTips
1). 在 TabStrip 屬性窗口里選擇 Tabs 標簽,在 Caption 框里輸入標題。
2). 在 TabStrip 屬性窗口里選擇 Tabs 標簽,在 ToolTipText 框里輸入 ToolTip 。
(3) 增減標簽總數
?? 在 TabStrip 屬性窗口里選擇 Tabs 標簽,單擊 Insert Tab 按鈕增加標簽,單擊 Remove Tab 按鈕刪除標簽。
(4) 在 TabStrip 上顯示圖形
1) 在窗體里拖入一個 ImageList 控件,
2) 按 F4 打開屬性窗口。
3) 雙擊(Custom),打開 ImageListCtrl 屬性窗口并選擇 Image 標簽。
4) 單擊 Insert Picture ,在現在圖形的對話框里選擇想使用的位圖或圖標,然后單擊打開按鈕。為每個想添加圖形的 Tab 按鈕重復此步。
5) 單擊確定按鈕。現在 ImageList 里存儲了需要的圖形。
6) 選擇 TabStrip ,進入 TabStrip 屬性窗口并選擇 General 標簽,在 ImageList 列表框里選擇 ImageList1 。
7) 現在選擇 Tabs 標簽,單擊緊挨 Index 框的向左或向右箭頭以選擇一個 Tab 序號。在 Image 框里輸入一個數,輸入為 1 ,則顯示剛才 ImageList 控件里的第一個圖形,輸入為 2 ,則顯示剛才 ImageList 控件里的第二個圖形。
8) 單擊確定按鈕。
(5) 用戶響應
? 可用類似下面的代碼來識別用戶在哪一個項目上單擊。
Private Sub TabStrip1_Click()
? Select Case TabStrip1.SelectedItem.Index
? Case 1
????????? 'Code to follow if user clicks the first tab
? Case 2
??????? ? 'Code to follow if user clicks the second tab
? Case 3
??????? ? 'Code to follow if user clicks the third tab
? End Select
? End Sub
(6) 在 TabStrip 上放置其它控件
? 在用戶選擇了標簽后, TabStrip 要求編寫代碼來顯示或隱藏控件。下面的代碼上是一個 TabStrip 上有一個命令鈕和一個選項鈕的例子,當用戶選擇了第一個 Tab 時,選項鈕出現,當用戶選擇了第二個 Tab 時,命令鈕出現。
? Private Sub TabStrip1_Click()
? ? Select Case TabStrip1.SelectedItem.Index
????? Case 1
? ??? Command1.Visible = False
? ??? Option1.Visible = True
????? Case 2
? ??? Command1.Visible = True
? ??? Option1.Visible = False
????? End Select
End Sub
2.6 ?Visual Basic 的輸入機制
?? 程序的基本操作就是數據的輸入,數據處理和數據的輸出。 Visual Basic 可中用于輸入的控件主要有:文本框 Text Box 、復選框 Check Box 、選項按鈕 Option Button 、列表框 List Box 、組合框 Combo Box 、滾動條 Scroll Bar 、通用對話框控件。還有一個函數叫 InputBox 函數,也可用于數據的輸入。
1. 通過文本框輸入數據
只要取得文本框的 Text 屬性就可以對其進行操作了。下面的代碼可將 Text1 文本框的正文變成大寫輸出至 Text2 文本框。
Private Sub Form_Click ()
????????? Text2.Text = UCase(Text1.Text)
End Sub
2. 通過復選框和選項按鈕輸入數據
? 只要檢測到 Check Box 和 Radio Button 的 Value 屬性值就可以知道它們是否被選上了。
3. 通過列表框和組合框輸入數據
(1) 列表框 List Box 和組合框 Combo Box 的不同
?? 它們在 Windows 的 Open , Save As 對話框里最為常見。組合框又包括三種類型,這三種類型要在它的 Style 屬性里設置。列表框僅僅把可以選擇的項目列出來,而組合框里有的類型可以允許用戶輸入數據。它們的異同是:
| 名稱 | 是否有下拉選項 | 是否允許用戶輸入 |
| ? 列表框 | 否 | 否 |
| ? 組合框類型 0 | 是 | 是 |
| ? 組合框類型 1 | 否 | 是 |
| ? 組合框類型 2 | 是 | 否 |
(2) 列表項目的增減
? 使用 AddItem , RemoveItem 語句可以增減列表項目。通常將項目增減的語句放入 Form_Load 事件里。
? ListBoxName. AddItem item
? ComboBoxName. AddItem item
? item 是新項目名稱,必須是字符串類型,非字符串類型可通過 Str 函數或 Format 函數來轉換。
列表框,組合框的每一項目都有一個 Index 值,第一個項目的 Index 值是 0 ,第二個是 1 ,依此類推。刪除項目可通過刪除其 Index 值來實現。
ListBoxName. RemoveItem item
?? ComboBoxName. RemoveItem item
如: ListBoxName. RemoveItem 0 則刪除了第一項,這時原來的第二項就變成了第一項。
? 可以在設計階段設定列表項目 , 方法是:
? 在屬性窗口選擇 List 屬性,將出現一個下拉列表,在列表中輸入第一項,按 Ctrl+Enter ,輸入第二項厖,最后用 Enter 結束。
(3)? 取得列表框 / 組合框的數據
? 可以通過取得 Text 屬性或通過取得 ListIndex 屬性來判斷哪一項被選擇了。 ListIndex 屬性的值也同樣是第一個為 0 ,第二個為 1厖如:
If List1.Text = 揤isual Basic� Then Instructions
If List1.ListIndex = 1 Then Instructions
組合框有時允許用戶自己輸入數據,這時所輸入數據的 ListIndex 值為- 1 。
4. 通過滾動條 Scroll Bar 取得數據
? 在 Visual Basic 的工具箱里有兩種滾動條:一種是垂直的,一種是水平的,它們的差異無非是擺放的方向不一樣。
(1) 滾動條的主要屬性及事件
1) Min , Max 屬性
? Min 屬性決定滾動條最左端或最頂端所代表的值。 Max 屬性決定滾動條最右端或最下端所代表的值。
2) LargeChange,SmallChange 屬性
? SmallChange 決定在滾動條兩端的箭頭鈕上單擊時改變的值。 LargeChange 決定在滑塊上方或下方區域單擊時改變的值。
3) Value 屬性
? Value 屬性代表當前滑塊所處位置的值,這個值由滑塊的相對位置決定。
4) Change 事件
?? 當滑塊位置發生變化時就引發了 Change 事件。
(2) 取得滾動條的數據
? 滾動條并不是一個數據輸入的好控件,因為無法從滾動條上直接看出輸入的數據,但它的優點是可以表示一定范圍里的相對位置。為了得到數據,只要取得滾動條的 Value 屬性就可以了。
5.? InputBox 函數
InputBox 函數提供一個簡單的對話框供用戶輸入信息。在把其它版本的 BASIC 程序移植到 Visual Basic 時, InputBox 函數通常用來代替 INPUT 語句。這個對話框的樣子基本上是上面的樣子。
它的完整語法是: x = InputBox (prompt, title, default, xpos, ypos, helpfile, context)
? 其中, prompt 是提示的字符串,這個參數是必須的。 title 是對話框的標題,是可選的。 default 是文本框里的缺省值,也是可選的。 xpos , ypos 決定輸入框的位置。 helpfile , context 用于顯示與該框相關的幫助屏幕。返回值 x 將是用戶在文本框里輸入的數據, x 是一個字符串類型的值。如果用戶按了 Cancel 鈕,則 x 將為空字符串。
6. 使用通用對話框控件
Windows 應用程序里的 Open 對話框, Save As 對話框在各個應用程序里看起來都是一樣的,通用對話框控件就可以提供這些對話框的標準功能。
(1) Open 對話框及 Save As 對話框
? 打開 Open 對話框使用 ShowOpen 方法,打開 Save As 對話框使用 ShowSave 方法。
? Private Sub mnuOpen_Click ()
????? On Error GoTo ErrorHandler
? ??? CommonDialog1.CancelError = True
? ??? CommonDialog1.Filter = "Text Files (*.txt)|*.txt|Batch Files (*.bat)|*.bat|All Files (*.*)|*.*"
? ??? CommonDialog1.ShowOpen ' display Open common dialog box.
? ??? Call OpenFile(CommonDialog1.FileName)
? ErrorHandler:
? ??? Exit Sub
End Sub
? 其中第三行決定了在文件格式類型欄里出現的文件類型。第五行需要一個自己的打開文件的過程,這個過程需要的參數就是通用對話框返回的文件名。通用對話框的 CancelError 屬性設為 True 的話,用戶單擊 Cancel 按鈕將產生一個錯誤信息程序,憑借這個信息程序可以檢測到用戶的放棄操作。
(2) Color 對話框
下面的過程可用用戶選擇的顏色作為窗體的底色。
Private Sub mnuColor_Click ()
? On Error GoTo CancelButton
? CommonDialog1.CancelError = True
? CommonDialog1.ShowColor
? Form1.BackColor = CommonDialog1.Color
? CancelButton:
? Exit Sub
End Sub
(3) Fonts 對話框
下面的過程可用字體對話框改變文本框的字體 :
Private Sub mnuFonts_Click ()
On Error GoTo CancelButton
CommonDialog1.CancelError = True
CommonDialog1.Flags = cdlCFBoth ' Flags property must be set to cdlCFBoth
CommonDialog1.ShowFont ' Display Font common dialog box.
Text1.FontName = CommonDialog1.FontName
Text1.FontSize = CommonDialog1.FontSize
Text1.FontBold = CommonDialog1.FontBold
Text1.FontItalic = CommonDialog1.FontItalic
Text1.FontUnderline = CommonDialog1.FontUnderline
Text1.FontStrikethru = CommonDialog1.FontStrikethru
Text1.ForeColor = CommonDialog1.Color
CancelButton:
Exit Sub
End Sub
代碼的第三行出現了通用對話框的 Flags 屬性決定了通用對話框的一些可選項,不過即使不賦值給 Flags ,代碼也一樣會按缺省的情況去執行的。
2.7? Visual Basic 的輸出機制
?? 作為輸出的對象, Visual Basic 提供了標簽,文本框,窗體,圖片框(Picture Box)等用于輸出,而且 Visual Basic 里也有一堆命令、屬性涉及信息的輸出,較常用的有: MsgBox 函數, Print 方法, Cls 方法, Tab 函數, Format 函數, FontName , FontSize , FontBold , FontItalic , FontStrikethru , FontUnderline 屬性, CurrentX , CurrentY 屬性等。
1. 通過 MsgBox 函數輸出
了解 Windows 應用程序的人都知道當用戶操作錯誤時,應用程序往往打出一個消息框來提示用戶的錯誤,象這樣:
Dim Action As Integer
Action = MsgBox(" 單擊確定鍵將引爆此計算機! ", vbYesNo + vbCritical + vbDefaultButton2, " 警告! ")
If Action = 6 Then Explode
這個功能在 Visual Basic 里是通過 MsgBox 函數來實現的,這樣程序員就不必自己去畫一個消息框了。語法是:
Action = MsgBox (msg, type, title)
其中, msg 是消息的內容,是一個字符串型的變量, type 及 title 參數是可以省略的, type 參數指定顯示的按鈕是什么及使用什么樣的圖標(這個參數往往讓新程序員思考幾分鐘), title 參數指定消息框的標題。 type 參數的含義是:
| 數值 | 符號常量 | 意義?? |
| 0 | vbOKOnly | 只顯示 Ok 按鈕 |
| 1 | ?vbOKCancel | 顯示 Ok? Cancel 按鈕 |
| 2 | vbAbortRetryIgnore | 顯示 Abor? Retry? Ignore 按鈕 |
| 3 | vbYesNoCancel? | 顯示 Yes? No? Cancel 按鈕 |
| 4 | vbYesNo? | 顯示 Yes? No 按鈕?? |
| 5 | vbRetryCancel | 顯示 Retry Cancel 按鈕 |
| 16 | vbCritical? | Stop Sign 對極其重要的問題提醒用戶 |
| 32 | ?vbQuestion | Question Mark 增亮沒有危險的問題 |
| 48 | vbExclamation | ?Exclamation Mark 強調警告用戶必須知道的事情 |
| 64 | vbInformation | Information Mark 可以使乏味的信息變得有趣 |
| 0 | vbDefaultButton1 | 第一個按鈕缺省 |
| 256 | vbDefaultButton2 | ? 第二個按鈕缺省 |
| 512 | vbDefaultButton3 | ? 第三個按鈕缺省?? |
例如: Action = MsgBox (揂re you girl?�, vbYesNo + vbQuestion, 換uestion�) 。使用這個函數時 Visual Basic 將產生一個標題為 Question ,具有問號和 Yes , No 按鈕的消息框。作為一個函數,本質上還是要返回值的, MsgBox 的返回值確定了用戶的選擇,程序可根據返回值做出相應的動作。
| 返回值 | 含義 | 返回值 | 含義 |
| 1 | 選擇 Ok 按鈕 | 5 | 選擇 Ignore 按鈕 |
| ?2 | 選擇 Cancel 按鈕 | 6? | 選擇 Yes 按鈕 |
| ?3 | 選擇 Abort 按鈕 | 7 | 選擇 No 按鈕 |
| ?4 | 選擇 Retry 按鈕 ? |
2. Print 方法, Cls 方法, Tab 函數
(1) Print 方法
Print 方法的語法是: object. Print expressionlist
? object 表示 Print 作用的對象,比如是 Form 或者是 Picture Box , object 是可以省略的,省略時的 Print 往往在窗體上輸出。 expressionlist 是輸出的內容,允許許多項數據的輸出,在數據間可以加入� ,�或� ;�。加入分號將使下一數據項緊挨著上一數據項輸出。而加入逗號,則 Visual Basic 將下一數據項在下一打印區輸出,其實就是空了幾個空格后再輸出。兩個打印區之間有 14 個字符的寬度,其實這也很難衡量,比如 14 個� W�所占的寬度大概是 14 個� i�所占寬度的三倍多。幸好中國日本之類的方塊字所占的寬度基本上是一樣的,所以較好處理一些。
(2) Tab 函數
?? Tab 函數只用在 Print 方法中,它用來移動下一個字符到打印位置,這將省去數空格的功夫。語法是: Tab (column)
?? Tab 函數將 Visual Basic 自定義的 14 字符寬的打印區扔到一邊,用自己的方式定義了新的靈活的打印區寬度。
(3) Cls 方法
? Cls 也是一個古老的 BASIC 語句 , 原來它的作用總是把屏幕變成黑色,然后在左上角或左下角閃爍一個光標, Visual Basic 里它的作用是清除繪圖語句和 Print 語句產生的文字和圖形。
? 語法是: object. Cls
object 指清除的對象,可以是 Form 或 Picture Box 。如果 object 省略,通常 Visual Basic 都把當前的窗口作為 Cls 操作的對象。
3. Format 函數
Format 函數用于制定字符串或數字的輸出格式。語法是: x = Format (expression,fmt)
expression 是所輸出的內容。 fmt 是指輸出的格式,這是一個字符串型的變量,這一項若省略的話,那么 Format 函數將和 Str 函數的功能差不多。如:
| 語句 | 輸出 |
| Format (2, �0.00�) | 2.00 |
| ?Format (.7, �0%�) | ?70%? |
| Format (1140, �$#,##0�) | $1,140 |
?? 簡單地, fmt 里的字符是這樣的:
| 字符 | 意義 | 字符 | 意義 |
| ?0 | ? 顯示一數字,若此位置沒有數字則補 0 | ?.? | 小數點 |
| ?# | ? 顯示一數字,若此位置沒有數字則不顯示 | ?, | ? 千位的分隔符 |
| ?% | ? 數字乘以 100 并在右邊加上� %�號 | - + $ ( ) | ? 這些字出現在 fmt 里將原樣打出 |
Format 函數也可用來對時間進行輸出。
| fmt | 輸出 | fmt | 輸出 |
| m/d/yy | ?8/16/96 | ? h:mm:ss a/p | ?10:41:29 p? |
| d-mmmm-yy | ?16-August-96 | ? h:mm | ?22:41? |
| d-mmmm | ?16-August | ? h:mm:ss | ?22:41:29? |
| mmmm-yy | ?august-96 | ?m/d/yy h:mm | ?8/16/96 22:41? |
| hh:mm AM/PM | ?10:41 PM |
4. FontName , FontSize , FontBold , FontItalic , FontStrikethru , FontUnderline 屬性
很明顯,這些屬性都與字體有關,許多控件都有這些屬性。通常它們在設計階段可以雙擊 font 屬性來設置,運行期間可以直接設置。它們的意義是:
| FontName? | 字體的名稱 | ? FontItalic | ? 字體是否用斜體顯示 ? |
| FontSize | ? 字體的大小 | FontStrikethru? | 字體是否有刪除線 ? |
| FontBold | 字體是否用粗體顯示 | FontUnderline | ? 字體是否有下劃線 |
?? 如: Text1.FontBold = True ,將把 Text1 文本框的 FontBold 屬性設為 True 。
5. 窗體,圖片框的 CurrentX , CurrentY 屬性
?? 這兩個不可見的屬性確定了下一次打印或繪圖的水平及垂直坐標。如上面講的 Print 方法,當 expression 后使用 �,� 時, Visual Basic 將改變 CurrentX , CurrentY 值為下一打印區域開始的值,于是,輸出便指向了下一個打印區域。而 Cls 方法將把操作對象的 CurrentX , CurrentY 的值設為 (0,0) 。
6. 通過標簽控件輸出
? 標簽控件的特點是運行時不能直接修改它,通常一個文本框旁邊都有一個標簽用來標識文本框。標簽的 Autosize 和 WordWrap 屬性是一對有用且令人困惑的屬性。
申明
非源創博文中的內容均收集自網上,若有侵權之處,請及時聯絡,我會在第一時間內刪除.再次說聲抱歉!!!
博文歡迎轉載,但請給出原文連接。
總結
- 上一篇: Laravel框架中的路由和控制器
- 下一篇: Laravel 中的 视图和模型