vb.net中用作處理圖形圖像的控件有兩個(gè):PictureBox和ImageList。PictureBox(圖片箱)控件被用來(lái)顯示圖形或者圖像,ImageList 組件用于存儲圖形或圖像。
上一篇我們看了vb.net入門(mén)——PictureBox控件的使用,這里我們來(lái)了解ImageList組件的基本使用。
ImageList 組件又稱(chēng)圖像列表,主要用于存儲圖像。這里說(shuō)的存儲圖像是指把圖像存儲在ImageList 組件內,在需要顯示的時(shí)候即可很方便地按圖像的索引調用它,主要就是為了給其他控件提供位圖的支持,它僅僅是個(gè)圖標的承載工具,本身并不參與界面的設計。該組件在vb.net工具箱中的如圖所示:

它是無(wú)界面組件,所以拖放到窗體中后,它不顯示在窗體上,而是現實(shí)在窗體下方的組件欄中。
我們可以將ImageList 組件與具有ImageList 屬性的控件進(jìn)行關(guān)聯(lián),這樣的控件包括:ListView、TreeView、ToolBar、TabControl、Button、CheckBox、RadioButton和Label控件。而且可以使用同一個(gè)ImageList 組件與多個(gè)有ImageList 屬性的控件相關(guān)聯(lián),只需把多個(gè)控件的ImageList 屬性都設置為ImageList 組件的名稱(chēng)。當更改圖像列表中某個(gè)索引號的圖標時(shí),新的圖標也會(huì )同時(shí)在所有與該ImageList組件關(guān)聯(lián)的控件中更新。
一、ImageList 組件的常用屬性
1、Name 屬性:在代碼中標識該組件的名稱(chēng)
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 組件最重要的屬性,下面我們以實(shí)例來(lái)演示怎么應用它。
二、為ImageList 控件添加和移除圖像
1、在設計器中添加或移除圖像:
1)、選擇 ImageList 組件或向窗體添加一個(gè) ImageList 組件。
2)、在“屬性”窗口中,單擊 Images 屬性旁的省略號按鈕 (),彈出“Image 集合編輯器”,如下圖所示:

3)、使用“添加”,彈出“打開(kāi)”對話(huà)框,選擇需要添加的圖像文件即可向列表添加圖像;使用“移除”按鈕從列表中移除選中的圖像。
2、以編程方式添加圖像
可以使用圖像列表 Images 屬性的 Add 方法來(lái)實(shí)現運行時(shí)以編程方式添加圖像到圖像列表中。如下代碼,向 ImageList 組件添加一個(gè)位于My Documents 文件夾下的圖像文件。
Public Sub LoadImage()
'實(shí)例化一個(gè)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)、移除單個(gè)圖像,可以使用 Remove 方法,如下所示:
ImageList1.Images.Remove(myImage)
2)、還可以使用 RemoveAt 方法移除指定索引的圖像,如下所示代碼移除索引為0的圖像:
ImageList1.Images.RemoveAt(0)
3)、或使用 Clear 方法清除圖像列表中的所有圖像。
ImageList1.Images.Clear()
三、讓相關(guān)控件顯示Image對象
對于所有有ImageList 屬性的控件,都可以與ImageList 組件相關(guān)聯(lián),并通過(guò) ImageIndex 屬性來(lái)指定顯示圖像列表中的圖像。下面我們以在一個(gè)Button控件中顯示圖像為例來(lái)說(shuō)明。
1、在設計器中關(guān)聯(lián)控件的圖像顯示:
1)、首先為窗體添加一個(gè)Button控件,一個(gè)ImageList 組件,按上面的方法為ImageList 組件添加圖像列表。
2)、選中Button控件,在它的“屬性”窗口中選擇ImageList 屬性,單擊后面的下拉列表,選擇ImageList1,這時(shí)就為Button1控件指定了圖像列表,如下圖三所示:

3)、然后使用“屬性”窗口中的ImageIndex 屬性的下拉列表指定關(guān)聯(lián)的圖像,如圖四所示:

現在圖像就會(huì )在Button控件上顯示出來(lái),如下圖五所示:

4)、我們可以通過(guò)調整Button控件的TextAlign和ImageAlign屬性來(lái)控制Button控件中圖像和文字的位置。
5)、刪除Button控件顯示的圖像,我們可以通過(guò)設置ImageIndex或者ImageList屬性為None來(lái)刪除顯示的圖片;也可以選擇Image 屬性,單擊鼠標右鍵彈出右鍵菜單來(lái)重置,如下圖六所示:

2、編程時(shí)為控件顯示圖像
如下代碼,可以為Button控件顯示ImageList1 組件中的索引為1的圖像
Button1.ImageList = ImageList1
Button1.ImageIndex = 1
要刪除Button控件的圖像顯示,可以使用如下代碼:Button1.ImageList = Nothing
或者把ImageIndex 屬性賦值為-1
Button1.ImageIndex = -1
聯(lián)系客服