vb.net中用作處理圖形圖像的控件有兩個:PictureBox和ImageList。PictureBox(圖片箱)控件被用來顯示圖形或者圖像,ImageList 組件用于存儲圖形或圖像。
上一篇我們看了vb.net入門——PictureBox控件的使用,這里我們來了解ImageList組件的基本使用。
ImageList 組件又稱圖像列表,主要用于存儲圖像。這里說的存儲圖像是指把圖像存儲在ImageList 組件內(nèi),在需要顯示的時候即可很方便地按圖像的索引調(diào)用它,主要就是為了給其他控件提供位圖的支持,它僅僅是個圖標的承載工具,本身并不參與界面的設計。該組件在vb.net工具箱中的如圖所示:
它是無界面組件,所以拖放到窗體中后,它不顯示在窗體上,而是現(xiàn)實在窗體下方的組件欄中。
我們可以將ImageList 組件與具有ImageList 屬性的控件進行關聯(lián),這樣的控件包括:ListView、TreeView、ToolBar、TabControl、Button、CheckBox、RadioButton和Label控件。而且可以使用同一個ImageList 組件與多個有ImageList 屬性的控件相關聯(lián),只需把多個控件的ImageList 屬性都設置為ImageList 組件的名稱。當更改圖像列表中某個索引號的圖標時,新的圖標也會同時在所有與該ImageList組件關聯(lián)的控件中更新。
一、ImageList 組件的常用屬性
1、Name 屬性:在代碼中標識該組件的名稱
2、ColorDepth 屬性:獲取圖像列表的顏色深度。在 .NET Framework 1.0 版本中,默認值為 Depth4Bit。在 .NET Framework 1.1 版本中,默認值為 Depth8Bit。
3、TransparentColor 屬性:獲取或設置被視為透明的顏色,默認值為 Transparent。
4、ImageSize 屬性:定義列表中的圖像高度和寬度的 Size。默認高度和寬度是 16 × 16,最大值為 256 × 256。
5、Images 屬性:ImageList 組件的圖像集合。該屬性是ImageList 組件最重要的屬性,下面我們以實例來演示怎么應用它。
二、為ImageList 控件添加和移除圖像
1、在設計器中添加或移除圖像:
1)、選擇 ImageList 組件或向窗體添加一個 ImageList 組件。
2)、在“屬性”窗口中,單擊 Images 屬性旁的省略號按鈕 (),彈出“Image 集合編輯器”,如下圖所示:
3)、使用“添加”,彈出“打開”對話框,選擇需要添加的圖像文件即可向列表添加圖像;使用“移除”按鈕從列表中移除選中的圖像。
2、以編程方式添加圖像
可以使用圖像列表 Images 屬性的 Add 方法來實現(xiàn)運行時以編程方式添加圖像到圖像列表中。如下代碼,向 ImageList 組件添加一個位于My Documents 文件夾下的圖像文件。
Public Sub LoadImage()
'實例化一個Image 對象
Dim myImage As System.Drawing.Image = Image.FromFile(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal) & "\myImage.jpg")
ImageList1.Images.Add(myImage)
End Sub
3、以編程方式移除圖像
1)、移除單個圖像,可以使用 Remove 方法,如下所示:
ImageList1.Images.Remove(myImage)
2)、還可以使用 RemoveAt 方法移除指定索引的圖像,如下所示代碼移除索引為0的圖像:
ImageList1.Images.RemoveAt(0)
3)、或使用 Clear 方法清除圖像列表中的所有圖像。
ImageList1.Images.Clear()
三、讓相關控件顯示Image對象
對于所有有ImageList 屬性的控件,都可以與ImageList 組件相關聯(lián),并通過 ImageIndex 屬性來指定顯示圖像列表中的圖像。下面我們以在一個Button控件中顯示圖像為例來說明。
1、在設計器中關聯(lián)控件的圖像顯示:
1)、首先為窗體添加一個Button控件,一個ImageList 組件,按上面的方法為ImageList 組件添加圖像列表。
2)、選中Button控件,在它的“屬性”窗口中選擇ImageList 屬性,單擊后面的下拉列表,選擇ImageList1,這時就為Button1控件指定了圖像列表,如下圖三所示:
3)、然后使用“屬性”窗口中的ImageIndex 屬性的下拉列表指定關聯(lián)的圖像,如圖四所示:
現(xiàn)在圖像就會在Button控件上顯示出來,如下圖五所示:
4)、我們可以通過調(diào)整Button控件的TextAlign和ImageAlign屬性來控制Button控件中圖像和文字的位置。
5)、刪除Button控件顯示的圖像,我們可以通過設置ImageIndex或者ImageList屬性為None來刪除顯示的圖片;也可以選擇Image 屬性,單擊鼠標右鍵彈出右鍵菜單來重置,如下圖六所示:
2、編程時為控件顯示圖像
如下代碼,可以為Button控件顯示ImageList1 組件中的索引為1的圖像
Button1.ImageList = ImageList1
Button1.ImageIndex = 1
要刪除Button控件的圖像顯示,可以使用如下代碼:Button1.ImageList = Nothing
或者把ImageIndex 屬性賦值為-1
Button1.ImageIndex = -1