C# ImageList 控件

        ImageList控件(存储图像控件)用于存储图像资源,然后在控件上显示出来,这样就简化了对图像的管理。ImageList 控件的主要属性是 Images,它包含关联控件将要使用的图片。每个单独的图像可通过其索引值或其键值来访问。所有图像都将以同样的大小显示,该大小由ImageSize属性设置,较大的图像将缩小至适当的尺寸,如图 1 所示为 ImageList 控件。

e6693cea650d679a79e2ae4e913029ab.png

图1   ImageList控件

      ImageList 控件实际上就相当于一个图片集,也就是将多个图片存储到图片集中,当想要对某一图片进行操作时,只需根据其图片的编号,就可以找出该图片,并对其进行操作。

01

在 lmageList 控件中添加图像

      使用 ImageList 控件的 Images 属性的Add方法,可以以编程的方式向 lmageList 控件中添加图像,下面对 Add 方法进行详细介绍。

       Add 方法的功能是将指定图像添加到 ImageList中。

语法如下:

public void Add(lmage value)

value:要添加到列表中的图像。

【例 2】 创建一个 Windows 应用程序,首先获取图像的路径,然后通过ImageList控件的Images属性的 Add 方法向控件中添加图像。

代码如下:

private void Form1_Load(object sender,EventArgs e)
{
//设置要加载的第一张图片的路径
string Path = Application.StartupPath.Substring(0,Application.StartupPath.Substring(0,Application.
StartupPath. LastIndexOf("\\")).LastIndexOf("\\"));
Path += @"\01.jpg";
//设置要加载的第二张图片的路径
string Path2 = Application.StartupPath.Substring(0,Application.StartupPath.Substring(0,Application.
StartupPath.LastIndexOf("\\")).LastIndexOf("\\"));
Path2 += @"\02.jpg";
Image Mimg=Image.FromFile(Path,true);      //创建一个 Image 对象 
imageList1.Images.Add(Mimg);               //使用 Images 属性的 Add 方法向控件中添加图像
Image Mimg2=Image.FromFile(Path2,true);    //创建一个 Image 对象
imageList1.Images.Add(Mimg2);             //使用 Images 属性的 Add 方法向控件中添加图像
imageList1.ImageSize = new Size(200,165);  //设置显示图片的大小
pictureBox1.Width = 200;                 //设置 pictureBox1 控件的宽
pictureBox1.Height=165;                  //设置 pictureBox1控件的高
}
private void button1_Click(object sender,EventArgs e)
{
//设置pictureBox1 的图像索引是imageList1、控件索引为0的图片 
pictureBox1.Image = imageList1.Imagesl[0];
}
private void button2_Click(object sender,EventArgs e)
{
//设置 pictureBox1 的图像索引是imageList1、控件索引为1的图片
pictureBox1.Image=imageList1.Images[1];
}

程序的运行结果如图 2 所示.

c50dac3ab70d03ea327fe34c256258f5.png

图2   显示添加后的图像

说明 在向 ImageList 组件中存储图片时,可以通过该组件的 ImageSize 属性设置图片的尺寸,其默认尺寸是16x16,最大尺寸是256X256。

02


在 ImageList 控件中移除图像 

       在 ImageList 控件中可以使用 RemoveAt 方法移除单个图像或使用 Clear 方法清除图像列表中的所有图像。下面详细介绍 RemoveAt方法和 Clear 方法。

       RemoveAt 方法用于从列表中移除图像。

语法如下:

public void RemoveAt(int index)

index: 要移除的图像的索引。 

说明 在用 RemoveAt方法删除图片时,如果索引无效(超出范围),则发生运行异常。

Clear方法主要用于从 ImageList 中移除所有图像。

语法如下:

public void Clear()

【例 3】创建一个 Windows 应用程序,设置在控件上显示的图像,使用 Images 属性的 Add方法将其添加到控件中。然后运行程序,单击“加载图像”按钮显示图像,再单击“移除图像”按钮移除图像之后,重新单击“加载图像”按钮,将弹出“没有图像”的提示。

代码如下:

private void Form1_Load(object sender,EventArgs e)
{
pictureBox1.Width=200;     //设置 pictureBox1控件的宽 
pictureBox1.Height=165;   //设置 pictureBox1控件的高 
//设置要加载图片的路径
string Path = Application.StartupPath.Substring(0,Application.StartupPath.Substring(0,Application.
StartupPath.LastIndexOf("\\")).LastIndexOf("\\"));
Path +=@"\01.jpg";
Image img = Image.FromFile(Path,true);    //创建 Image 对象 
imageList1.Images.Add(img);   //使用 Images 属性的 Add 方法向控件中添加图像 
imageList1.ImageSize = new Size(200,165);    //设置显示图片的大小
} 
private void button1_Click(object sender,EventArgs e)
{
if(ImageList1.Images.Count ==0)      //判断imageList1 中是否存在图像
{ 
MessageBox.Show("没有图像");       //如果没有图像弹出提示 
}
else                                //否则
{
//使 pictureBox1控件显示imageList1 控件中索引为0的图像 
pictureBox1.Image = imageList1.Images[0];
}
}
private void button2_Click(object sender, EventArgs e)
{
imageList1.Images.RemoveAt(0);     //使用 RemoveAt方法移除图像
}

程序的运行结果如图 3 所示。

6175fb4c95e0aaa1799773881428c5fd.png

图3   移除控件中的图像

还可以使用Clear方法从ImageList中移除所有图像。

代码如下:

imageList1.Images.Clear();             //使用Clear方法移除所有图像
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值