小Q的博客

  • 首页
  • net编程
    • 产品和框架
    • 开发实例
    • 经验技巧
    • 开源组件
  • wp独立站
  • 自媒体
  • 日记本
  • 工具箱
每个程序员,都应该有一个自己的博客站
  1. 首页
  2. net编程
  3. 开发实例
  4. 正文

net中winform教程 ListView控件如何实现分组?

2022年11月9日 565点热度 0人点赞 0条评论

虽然现在winform开发很少使用微软自带的控件,但其中有一个控件还是不错的,它就是ListView控件。操作系统的文件夹页,就是ListView控件的样子,数据展示包括大图标、小图标、列表、明细等。今天通过一个实例,来展示下这个控件是如何使用的?先看下效果图

listview控件分组示例

这个实例实现了以下功能:

  • 1、数据分组展示
  • 2、行最前面增加了图标
  • 3、整行全部选中
  • 4、数据展示模式可切换

 

代码部分也不复杂,这里是全部代码的:创建一个Form页面,里面放一个ToolStrip的工具栏和一个ListView控件即可

private void tbtnLoadData_Click(object sender, EventArgs e)
{
    #region 加载ListView控件,分组显示

    this.listview1.Groups.Clear();
    this.listview1.Items.Clear();

    this.listview1.View = View.Details;
    this.listview1.FullRowSelect = true;

    ColumnHeader columnHeader0 = new ColumnHeader();
    columnHeader0.Text = "Title";
    columnHeader0.Width = 250;
    ColumnHeader columnHeader1 = new ColumnHeader();
    columnHeader1.Text = "Author";
    columnHeader1.Width = 150;
    ColumnHeader columnHeader2 = new ColumnHeader();
    columnHeader2.Text = "Year";
    columnHeader2.Width = 50;

    if (this.listview1.Columns.Count < 3)
    {
        this.listview1.Columns.AddRange(new ColumnHeader[] { columnHeader0, columnHeader1, columnHeader2 });
    }

    ListViewGroup group1 = new ListViewGroup("001");
    ListViewGroup group2 = new ListViewGroup("002");

    this.listview1.Groups.Add(group1);
    this.listview1.Groups.Add(group2);

    ListViewItem item0 = new ListViewItem(new string[] { "Programming Windows", "Petzold, Charles", "1998" }, 0, group1);
    ListViewItem item1 = new ListViewItem(new string[] { "Code: The Hidden Language of Computer Hardware and Software", "Petzold, Charles", "2000" }, 0, group1);
    ListViewItem item2 = new ListViewItem(new string[] { "Programming Windows with C#", "Petzold, Charles", "2001" }, 0, group1);
    ListViewItem item3 = new ListViewItem(new string[] { "Coding Techniques for Microsoft Visual Basic .NET", "Connell, John", "2001" }, 1, group2);
    ListViewItem item4 = new ListViewItem(new string[] { "C# for Java Developers", "Jones, Allen & Freeman, Adam", "2002" }, 1, group2);
    ListViewItem item5 = new ListViewItem(new string[] { "Microsoft .NET XML Web Services Step by Step", "Jones, Allen & Freeman, Adam", "2002" }, 1, group2);
    this.listview1.Items.AddRange(new ListViewItem[] { item0, item1, item2, item3, item4, item5 });

    //加上图标
    this.listview1.LargeImageList = this.imageList1;
    this.listview1.SmallImageList = this.imageList1;

    int index = 0;
    foreach(ListViewItem lvi in this.listview1.Items)
    {
        lvi.ImageIndex = index;
        index++;
    }
    #endregion
}

private void tbtnLarge_Click(object sender, EventArgs e)
{
    this.listview1.View = View.LargeIcon;
}

private void tbtnSmall_Click(object sender, EventArgs e)
{
    this.listview1.View = View.SmallIcon;
}

private void tbtnDetail_Click(object sender, EventArgs e)
{
    this.listview1.View = View.Details;
}

 

相关阅读

winform中播放视频?ffplay比MediaPlayer和暴风都好用

标签: c#教程 listview分组示例 net教程 winform教程
最后更新:2022年11月11日

小Q

80后中年不油腻大叔,喜欢编写代码、打羽毛球、做木制玩具。目前定居浙江杭州

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2022 小Q的博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

浙ICP备2022019157号-2