使用ScrollBar作為輸入設備
滾動條通常與TextBox或窗口一起使用,但有時也可作輸入設備。因為ScrollBar控件可按比例指示當前位置,所以可以單獨使用以控制程序輸入,如控制聲音音量或調整圖片顏色。HScrollBar(水平)和 VScrollBar(垂直)控件是獨立的,它有自己的事件、屬性和方法集。ScrollBar 控件與附屬於TextBox、ListBox、ComboBox 或 MDI 窗體的內部 ScrollBar 不同。(TextBox 和 MDI 窗體具有 ScrollBars 屬性,可增加或刪除附屬於控件的 ScrollBar。)
現在 Windows 界面提示行支持 Slider 控件作為輸入設備而不用ScrollBar。關於 Slider 控件的例子,請參閱 Windows 95 的控件面板。VisualBasic 的專業版和企業版中包含一個 Windows 95 風格的 Slider 控件。
詳細信息 關於 ScrollBar 控件的詳細信息,請參閱第七章“使用 VisualBasic 的標准控件”。
顯示圖片和圖形的控件
因為 Windows 是圖形用戶界面,所以在應用程序上界面顯示圖形圖像的方法十分重要。Visual Basic 包含四個控件以簡化與圖形有關的操作,它們是PictureBox 控件、Image 控件、Shape 控件和 Line 控件。
Image、Shape 和 Line 控件有時被稱作輕量圖形控件。它們需要較少的系統資源,因此比 PictureBox 控件顯示得快並且包含 PictureBox 中可用的屬性、方法和事件的子集。每一個控件都適用於一個特定的目的。
使用 PictureBox 控件
PictureBox 控件的主要作用是為用戶顯示圖片。實際顯示圖片由 Picture 屬性決定。Picture 屬性包括被顯示的圖片的文件名(及可選的路徑名)。
注意 窗體對象也具有 Picture 屬性,通過設置該屬性可直接在窗體背景上顯示圖片。
要在運行時顯示或替換圖片,可利用函數 LoadPicture 來設置 Picture 屬性。提供圖片文件名和可選路徑名,由 LoadPicture 函數處理加載和顯示圖片的細節。
picMain.Picture = LoadPicture("VANGOGH.BMP")
PictureBox 控件具有 AutoSize 屬性,當該屬性設置為 True 時,PictureBox能自動調整大小與顯示的圖片匹配。如果要用 AutoSize 屬性設置為 True的 PictureBox ,設計窗體時就需要特別小心。圖片將不考慮窗體上的其它控件而調整大小,這可能導致意想不到的後果,如覆蓋其它控件。設計時應通過加載每一幅圖片來檢查是否有這種現象發生。
使用PictureBox 作為容器
Picture box 控件也可以用作其它控件的容器。像Frame 控件一樣,可以在PictureBox 控件上面加上其它控件。這些控件隨 PictureBox 移動而移動,其Top 和Left 屬性是相對 PictureBox 而言,而與窗體無關。
PictureBox 容器的一種普通用法是 ToolBar 或 StatusBar 。可將 Image 控件置於這些容器中作為按鈕或添加Label顯示狀態信息。將Align屬性設置為Top、Bottom、Left或Right ,PictureBox將粘貼在窗體的邊緣。圖 3.16 為一個Align屬性設置為Bottom的PictureBox 。它包含兩個可用於顯示狀態信息的 Label 控件。
PictureBox 的其它用法
PictureBox 控件有幾種方法使 PictureBox 可用於其它目的。例如:把PictureBox 看作是一塊空畫布,可以在它上面畫畫或打印,或者顯示文本、圖形,甚至是簡單的動畫。
Print 方法允許向 PictureBox 控件輸出文本,如同向打印機輸出一樣。有幾種字體屬性可以控制由 Print 方法輸入的文本的特性;Cls 方法可以清除輸出。
Circle、Line、Point 和 Pset 方法可以用於在 PictureBox 中畫圖形。一些屬性如 DrawWidth、FillColor 和 FillStyle 允許自定義圖形的外觀。
用 PaintPicture 方法在圖片控件內移動 Image 、並在幾幅不同的 Image 間
快速變化就能產生動畫。
詳細信息 關於 PictureBox 控件的詳細信息,請參閱第七章“使用 VisualBasic 的標准控件”。
輕量圖形控件
Image、Shape 和 Line 控件都被認為是輕量圖形控件,也就是說,它們只支持 PictureBox 的屬性、方法和事件的一個子集。因此,它們需要較少的系統資源而且加載也比 PictureBox 控件更快。
用Image 控件代替PictureBox
Image 控件與 PictureBox 控件相似,但它只用於顯示圖片。它不能作為其它控件的容器,也不支持 PictureBox 的高級方法。 圖片加載於 Image 控件的方法和它們加載於 PictureBox 中的方法一樣。設計時,將 Picture 屬性設置為文件名和路徑,運行時,利用 Loadpicture 函數。
Image 控件調整大小的行為與 PictureBox 不同。它具有 Stretch 屬性,而PictureBox 具有 AutoSize 屬性。將 AutoSize 屬性設為 True 可使PictureBox 根據圖片調整大小,設為 False 則圖片將被剪切(只有一部分圖片可見)。Stretch 屬性設為 False(缺省值)時,Image 控件可根據圖片調整大小。將 Stretch 屬性設為 True 將根據 Image 控件的大小來調整圖
片的大小,這可能使圖片變形。
詳細信息 關於 Image 控件的詳細信息,請參閱第七章“使用 Visual Basic's的標准控件”。
使用 Image 控件創建自己的按鈕
Image 控件也可以識別 Click 事件,因此可在要用 CommandButton 的任何地方使用該控件。這種方法可以方便地建立有圖片的按鈕來取代標題。將幾個 Image 控件組成一組,水平置於屏幕頂端(通常在一個 PictureBox中),可以在應用程序中建立一個 ToolBar。
例如,對 Test Buttons一 例給出的 Image 控件 ,用戶可以像選擇CommandButton 一樣來選擇它。窗體第一次被顯示時,控件顯示 VisualBasic 的圖標庫中三個交通圖標中的一個。每單擊 Image 控件一次,就顯示一個不同的圖標(該例的工作版本,請參閱 Controls.vbp 示例應用程序中的 Button.frm)。
如果設計時觀察一下窗體,就會發現它實際包含所有三個圖標,它們堆集在一起。改變頂部 Image 控件的 Visible 屬性為 False,下一幅圖像(如果其 Visible 屬性為真)將顯示於頂部。
圖 3.17 為一個交通圖標的Image 控件 (Trffc10a.ico)。
要在 Image 控件的周圍建立一個邊框,將 BorderStyle 屬性設為 1—— 固定的單邊框。
注意 與 CommandButton 不同,單擊 Image 控件時,並不顯示它被按下的動作。也就是說除非在 MouseDown 事件中改變位圖,否則“按鈕”正在被按下對用戶來說是看不到的。
詳細信息 關於在 Image 控件中顯示圖形圖像的詳細信息,請參閱第七章“使用 Visual Basic 的標准控件”。
使用 Shape 控件和 Line 控件
Shape 和 Line 控件可用來在窗體表面畫圖形元素。這些控件不支持任何事件,只用於表面裝飾。
有幾種屬性可以控制 Shape 控件的外觀。通過設置 Shape 屬性,Shape 控件可顯示為矩形、正方形、橢圓型、圓角矩形或圓角正方形。設置 BorderColor和 FillColor 屬性可以改變顏色,BorderStyle、BorderWidth、FillStyle 和DrawMode 屬性控制如何畫圖。 Line 控件與 Shape 控件相似,但僅用於畫線。
詳細信息 關於 Shape 和 Line 控件的附加信息,請參閱第七章“使用Visual Basic 的標准控件”。
Images 應用程序
圖 3.18 所示窗體用了四個 Image 控件,一個 Shape 控件,一個 PictureBox控件和一個 CommandButton 控件。當用戶選擇撲克牌符號時,Shape 控件使該符號突出顯示,並且在 PictureBox 中顯示相應的描述。關於本例的工作版本,請參閱 Controls.vbp 示例應用程序中的 Images .frm。
下表列出了應用程序中對象的屬性設置。