vb.net中用作处理图形图像的控件有两个:PictureBox和ImageList。PictureBox(图片箱)控件被用来显示图形或者图像,ImageList 组件用于存储图形或图像。
上一篇我们看了vb.net入门——PictureBox控件的使用,这里我们来了解ImageList组件的基本使用。
ImageList 组件又称图像列表,主要用于存储图像。这里说的存储图像是指把图像存储在ImageList 组件内,在需要显示的时候即可很方便地按图像的索引调用它,主要就是为了给其他控件提供位图的支持,它仅仅是个图标的承载工具,本身并不参与界面的设计。该组件在vb.net工具箱中的如图所示:
它是无界面组件,所以拖放到窗体中后,它不显示在窗体上,而是现实在窗体下方的组件栏中。
我们可以将ImageList 组件与具有ImageList 属性的控件进行关联,这样的控件包括:ListView、TreeView、ToolBar、TabControl、Button、CheckBox、RadioButton和Label控件。而且可以使用同一个ImageList 组件与多个有ImageList 属性的控件相关联,只需把多个控件的ImageList 属性都设置为ImageList 组件的名称。当更改图像列表中某个索引号的图标时,新的图标也会同时在所有与该ImageList组件关联的控件中更新。
一、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 方法来实现运行时以编程方式添加图像到图像列表中。如下代码,向 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 组件相关联,并通过 ImageIndex 属性来指定显示图像列表中的图像。下面我们以在一个Button控件中显示图像为例来说明。
1、在设计器中关联控件的图像显示:
1)、首先为窗体添加一个Button控件,一个ImageList 组件,按上面的方法为ImageList 组件添加图像列表。
2)、选中Button控件,在它的“属性”窗口中选择ImageList 属性,单击后面的下拉列表,选择ImageList1,这时就为Button1控件指定了图像列表,如下图三所示:
3)、然后使用“属性”窗口中的ImageIndex 属性的下拉列表指定关联的图像,如图四所示:
现在图像就会在Button控件上显示出来,如下图五所示:
4)、我们可以通过调整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
本文作者: