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版权协议,转载请附上原文出处链接及本声明。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VB.Net中,可以使用ListView控件进行表格的展示和排序,并且可以通过增加排序小箭头的方式来显示当前排序的列。 1. 实现任意列排序: ListView控件原生支持按照某一列进行排序,可以通过设置ListView的Sorting属性来指定排序的方式。例如,可以将Sorting属性设置为Ascending来实现按照升序排序,设置为Descending来实现按照降序排序。当点击列标题时,可以在ColumnClick事件中获取到当前点击的列索引,并在事件处理程序中编写排序逻辑,最后将Sorting属性设置为正确的排序方式即可。 2. 增加排序小箭头: ListView控件并没有直接提供增加排序小箭头的方法,但可以通过一些其他方式来实现。可以使用ImageList控件创建一个包含排序箭头图像的ImageList对象,然后通过在ListView的列头上绘制箭头图像的方式来显示排序状态。可以通过ColumnClick事件来确定当前点击的列,并根据排序方式设置不同的图像来改变箭头的显示。 下面是一个简单的示例代码: ```vb.net ' 假设ListView控件名为listView1,ImageList控件名为imageList1 ' 初始化ImageList imageList1.Images.Add("asc", Image.FromFile("arrow_up.png")) imageList1.Images.Add("desc", Image.FromFile("arrow_down.png")) ' 列头点击事件处理程序 Private Sub listView1_ColumnClick(sender As Object, e As ColumnClickEventArgs) Handles listView1.ColumnClick ' 获取当前排序的列索引 Dim columnIndex As Integer = e.Column ' 判断是否当前列为排序列 If columnIndex = listView1.Sorting AndAlso listView1.Sorting <> SortOrder.None Then ' 如果当前列已经是排序列,则切换排序方式 If listView1.Sorting = SortOrder.Ascending Then listView1.Sorting = SortOrder.Descending Else listView1.Sorting = SortOrder.Ascending End If Else ' 如果当前列不是排序列,则按默认升序排序 listView1.Sorting = SortOrder.Ascending End If ' 设置当前排序列索引 listView1.Sorting = columnIndex ' 根据排序方式设置列头图像 If listView1.Sorting = SortOrder.Ascending Then listView1.Columns(columnIndex).ImageKey = "asc" ElseIf listView1.Sorting = SortOrder.Descending Then listView1.Columns(columnIndex).ImageKey = "desc" Else listView1.Columns(columnIndex).ImageKey = Nothing End If ' 执行排序操作 listView1.Sort() End Sub ``` 通过以上代码,可以实现在ListView的列头点击后进行任意列排序,并且根据排序方式显示相应的排序小箭头图像。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值