使用ScrollBar作為輸入設備
捲軸通常與TextBox或視窗一起使用,但有時也可以使用輸入裝置。因為ScrollBar控制可依比例指示目前位置,所以可以單獨使用以控製程式輸入,例如控制聲音音量或調整圖片顏色。 HScrollBar(水平)和VScrollBar(垂直)控制項是獨立的,它有自己的事件、屬性和方法集。 ScrollBar控制項與附屬於TextBox、ListBox、ComboBox或MDI窗體的內部ScrollBar不同。 (TextBox和MDI窗體具有ScrollBars屬性,可增加或刪除附屬於控制項的ScrollBar。)
現在Windows介面提示行支援Slider控制項作為輸入裝置而不用ScrollBar。關於Slider控制項的例子,請參閱Windows95的控制項面板。 VisualBasic的專業版和企業版包含一個Windows95風格的Slider控制項。
詳細資訊關於ScrollBar控制項的詳細信息,請參閱第七章「使用VisualBasic的標準控制項」。
顯示圖片和圖形的控件
因為Windows是圖形使用者介面,所以在應用程式上介面顯示圖形影像的方法十分重要。 VisualBasic包含四個控制項以簡化與圖形相關的操作,它們是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作為容器
Picturebox控制也可以用作其它控制的容器。像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控制項的詳細信息,請參閱第七章「使用VisualBasic's的標準控制項」。
使用Image控制項建立自己的按鈕
Image控制項也可以辨識Click事件,因此可在任何要用CommandButton的地方使用該控制項。這種方法可以方便地建立有圖片的按鈕來取代標題。將幾個Image控制項組成一組,水平置於螢幕頂端(通常在一個PictureBox中),可以在應用程式中建立一個ToolBar。
例如,對TestButtons一例給出的Image控件,使用者可以像選擇CommandButton一樣來選擇它。當窗體第一次被顯示時,控制顯示VisualBasic的圖示庫中三個交通圖示中的一個。每點選Image控制項一次,就顯示一個不同的圖示(該範例的工作版本,請參閱Controls.vbp範例應用程式中的Button.frm)。
如果設計時觀察窗體,就會發現它實際上包含所有三個圖標,它們堆集在一起。改變頂部Image控制項的Visible屬性為False,下一幅影像(如果其Visible屬性為真)將顯示於頂部。
圖3.17為一個交通圖示的Image控制(Trffc10a.ico)。
要在Image控制項的周圍建立一個邊框,將BorderStyle屬性設為1-固定的單邊框。
注意與CommandButton不同,當點選Image控制項時,不會顯示它被按下的動作。也就是說除非在MouseDown事件中改變點陣圖,否則「按鈕」正在被按下對使用者來說是看不到的。
詳細資訊關於在Image控制項中顯示圖形影像的詳細信息,請參閱第七章「使用VisualBasic的標準控制項」。
使用Shape控件和Line控件
Shape和Line控制可用於在窗體表面畫圖形元素。這些控制項不支援任何事件,只用於表面裝飾。
有幾種屬性可以控制Shape控制項的外觀。透過設定Shape屬性,Shape控制項可顯示為矩形、正方形、橢圓型、圓角矩形或圓角正方形。設定BorderColor和FillColor屬性可以改變顏色,BorderStyle、BorderWidth、FillStyle和DrawMode屬性控制如何畫圖。 Line控制與Shape控制項相似,但僅用於畫線。
詳細資訊關於Shape和Line控制項的附加信息,請參閱第七章「使用VisualBasic的標準控制項」。
Images應用程式
圖3.18所示窗體用了四個Image控件,一個Shape控件,一個PictureBox控件和一個CommandButton控件。當使用者選擇撲克牌符號時,Shape控制項會使符號突出顯示,並在PictureBox中顯示相應的描述。關於本範例的工作版本,請參閱Controls.vbp範例應用程式中的Images.frm。
下表列出了應用程式中物件的屬性設定。
->