vb.net 教程 3-4 窗体编程 ImageList
发布时间:2020-12-17 07:33:21 所属栏目:百科 来源:网络整理
导读:ImageList 图像列表组件,本身没有太多的属性和事件,主要是提供一个图片列表给别的控件使用。 本来ImageList不属于公共控件里面的,但是由于和之后要讲解的几个控件有关系,所以提前到这里进行讲解。 当添加了ImageList组件后,它不会显示在窗体中,而是显
ImageList 图像列表组件,本身没有太多的属性和事件,主要是提供一个图片列表给别的控件使用。
本来ImageList不属于公共控件里面的,但是由于和之后要讲解的几个控件有关系,所以提前到这里进行讲解。 当添加了ImageList组件后,它不会显示在窗体中,而是显示在设计窗体的下面: 属性: ColorDepth :图像列表的颜色深度。 ImageSize :图像列表中的图像大小,默认大小是16*16,最大是256*256。应该在设置Images 前设置此属性。 Images :一个ImageCollection 类,存放了图片 TransparentColor :设置图片的透明色
从vs编辑器添加图片到ImageList:
注意:添加的时候可以选择多个。
如下一个例子:
其中,ImageList的大小设置为 32*32,Picturebox1大小为32*32,
从vs编辑器手工添加了5张图片,还会使用代码添加和减少图片。
代码如下:
Dim picIndex As Integer '用于记录当前使用的ImageList中的图片序号 Private Sub Form1_Load(sender As Object,e As EventArgs) Handles MyBase.Load picIndex = 0 PictureBox1.Image = ImageList1.Images(picIndex) Label1.Text = "第" & picIndex + 1 & "张/共" & ImageList1.Images.Count & "张" End Sub Private Sub Button3_Click(sender As Object,e As EventArgs) Handles Button3.Click picIndex -= 1 If picIndex = -1 Then picIndex = ImageList1.Images.Count - 1 PictureBox1.Image = ImageList1.Images(picIndex) Label1.Text = "第" & picIndex + 1 & "张/共" & ImageList1.Images.Count & "张" End Sub Private Sub Button4_Click(sender As Object,e As EventArgs) Handles Button4.Click picIndex += 1 If picIndex > ImageList1.Images.Count - 1 Then picIndex = 0 PictureBox1.Image = ImageList1.Images(picIndex) Label1.Text = "第" & picIndex + 1 & "张/共" & ImageList1.Images.Count & "张" End Sub Private Sub Button5_Click(sender As Object,e As EventArgs) Handles Button5.Click Dim newImg As Bitmap = Bitmap.FromFile("d:15.jpg") ImageList1.Images.Add(newImg) picIndex = ImageList1.Images.Count - 1 PictureBox1.Image = ImageList1.Images(picIndex) Label1.Text = "第" & picIndex + 1 & "张/共" & ImageList1.Images.Count & "张" End Sub Private Sub Button6_Click(sender As Object,e As EventArgs) Handles Button6.Click If ImageList1.Images.Count > 0 AndAlso picIndex >= 0 Then ImageList1.Images.RemoveAt(picIndex) If ImageList1.Images.Count > 0 Then picIndex = 0 PictureBox1.Image = ImageList1.Images(picIndex) Label1.Text = "第" & picIndex + 1 & "张/共" & ImageList1.Images.Count & "张" Else PictureBox1.Image = Nothing Label1.Text = "没有图片" End If Else MessageBox.Show("已经没有图片了") End If End Sub
运行效果如下:
其中需要注意的是
1、在显示下一张、上一张图片的时候,防止图片序号超出范围;
2、删除图片的时候防止已经没有图片了还在执行删除操作。
3、插入的是一张比较大的图片,但是由于设置ImageList大小为32*32,所以增加到ImageList后,大小成了32*32,可以将PictureBox1的SizeMode修改为Auto看看。
学习更多vb.net知识,请参看
vb.net 教程 目录
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |