WindowForm组件ListView

1. ListView控件

① 属性
1) CheckBox 每一行是否带复选框 ,
2)View 5种视图 ,
2)Alignment 内容项的对齐方式
4)ShowGroups以组的形式显示项
5)Groups 组集合(类似于我的电脑硬盘组下有c,d,e盘符)
6)Items 项的集合
7)MultiSelect允许选择多项
8)SmallImageList 除大图标视图和Tile视图以外的所有视图 图像的ImageList控件
9)详细视图特有属性(View–> Detials):AllowColumnRecorder允许列排序 , Columns列名, GridLines 网格
10)大图标视图LargeIcon :自动排列AutoArrange LargeImageList大图标的图片集合
小图标视图 SmallIcon :AutoArrange
CheckedIndices勾选的索引集合 , CheckedItems勾选项的集合 , SelectedIndices选中的索引集合, SelectedItems选中的项集合
*List视图不支持 分组显示

② 事件
SelectedIndexChanged选中发生更改时
ColumnClick列标头更改时
ItemChecked状态更改

ListView控件参考文章

大图标视图

Dictionary<string, string> dicGroup = new Dictionary<string, string>();
//初始化
private void FrmListView2_Load(object sender, EventArgs e)
{
    LoadImgList();		//加载图片
    //初始化分组信息
     lvList.Groups.Clear();
    lvList.Groups.Add(new ListViewGroup("花", HorizontalAlignment.Center));
    lvList.Groups.Add(new ListViewGroup("动物", HorizontalAlignment.Center));
    lvList.Groups.Add(new ListViewGroup("人物", HorizontalAlignment.Center));
    lvList.Groups.Add(new ListViewGroup("风景", HorizontalAlignment.Center));
    lvList.Items.Clear();
    //关系存储
    dicGroup.Add("花", "04");
    dicGroup.Add("动物", "01");
    dicGroup.Add("人物", "02");
    dicGroup.Add("风景", "03");

    lvList.ShowGroups = false;			//是否分组显示
    if (largeList!=null && largeList.Images.Count >0)
    {
        for(int i=0;i<largeList.Images.Count;i++)
        {
            string iText = largeList.Images.Keys[i];
            //添加ListView控件中的项
            ListViewItem li = new ListViewItem();
            li.Text = iText;
            li.ImageIndex =i;
            lvList.Items.Add(li);
        }
    }
    lvList.View = View.LargeIcon;		//指定视图模式
    lvList.LargeImageList = largeList;	//大图标使用的ImageList
    lvList.SmallImageList = smallList;	//除大图标以外所有视图使用的ImageList
}

在这里插入图片描述

详细信息视图

private void btnDetails_Click(object sender, EventArgs e)
{
    lvList.Items.Clear();
    lvList.Columns.Clear();
    //lvList.ShowGroups = false;
    lvList.View = View.Details;			//设置详细信息视图
    //列的添加
    lvList.Columns.Add("文件名", 100, HorizontalAlignment.Left);
    lvList.Columns.Add("创建日期", 150, HorizontalAlignment.Left);
    lvList.Columns.Add("类型", 80, HorizontalAlignment.Left);
    lvList.Columns.Add("大小", 60, HorizontalAlignment.Left);
    //项
    for (int i = 0; i < dic.Count; i++)
    {
        ListViewItem li = new ListViewItem();
        li.ImageIndex = i;
        li.Text = smallList.Images.Keys[i];
        li.SubItems.Add(File.GetCreationTime(dic[i]).ToString());//创建日期
        li.SubItems.Add(Path.GetExtension(dic[i]));				//类型
        long length = new FileInfo(dic[i]).Length;				//获取文件大小 B
        li.SubItems.Add((length / 1024).ToString());			//KB  
        if(lvList.ShowGroups)
        {
            foreach (ListViewGroup lvg in lvList.Groups)
            {
                //判断项文本的前面的编号是否与组所对应的编号一致,如果一致,就将该项分到这一组
                if (li.Text.Substring(0, 2) == dicGroup[lvg.Header])
                {
                    li.Group = lvg;						//设置项所属的组
                    break;
                }
            }
        }
        lvList.Items.Add(li);
    }
    lvList.GridLines = true;						//显示网格
}

在这里插入图片描述

分组视图

//分组
private void btnGroup_Click(object sender, EventArgs e)
{
     lvList.ShowGroups = true;      
     GroupShow();
 }
 //分组处理
 private void GroupShow()
 {
      for (int i = 0; i < lvList.Items.Count; i++)
      {
          foreach (ListViewGroup lvg in lvList.Groups)
          {
              //判断项文本的前面的编号是否与组所对应的编号一致,如果一致,就将该项分到这一组
              if (lvList.Items[i].Text.Substring(0, 2) == dicGroup[lvg.Header])
              {
                  lvList.Items[i].Group = lvg;//设置项所属的组
                  break;
              }
          }
      }
  }

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值