-
vb.net 教程 3-4 窗体编程 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 教程 目录
————————————————
版权声明:本文为CSDN博主「VB.Net」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/uruseibest/article/details/72566660
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比