小工具      在线工具  汉语词典  css  js  c++  java

C#的ListView控件应用

c#,开发语言 额外说明

收录于:195天前

目录

一、在ListView控件中添加/移除/清空项

1.添加项

2.移除和清空项 

3.源码

4.生成效果 

二、选择ListView控件中的项

三、为ListView控件中的项添加图标

1.设置listView图片属性

2.设置listView文字属性

3.图片(Images)属性和文字(Items)属性建立关联

4.源码

5.生成效果

四、在ListView控件中启用平铺视图

1.源码

2.生成效果

五、为ListView控件中的项分组

1.添加组

2.移除组

3.向组分配项或在组之间移动项

4.源码 

5. 生成效果


        ListView控件(列表视图控件)显示带图标的项的列表,可以显示大图标、小图标和数据。使用ListView控件可以创建类似Windows资源管理器右窗口的用户界面。

        ListView控件可以通过View属性设置项在控件中显示的方式。

属性值

说明

Detail

各项显示在不同的行上,并带有关于列中所排列的进一步信息。最左边的列包含一个小图标和标签,后面的列包含应用程序指定的子项。列显示一个标头,可以显示列的标题,可以在运行时改变列的大小。

LargeIcon

默认模式,显示为大图标,其下面还有标签

List

显示为小图标,其右边带有标签;排列在列中时没有列标头

SmallIcon

显示为小图标,其右边带有标签;

Tile

完整大小图标,其右边带有标签和子项目信息。其子项目信息由应用程序指定。

一、ListView控件中添加/移除/清空项

1.添加项

        使用ListView控件的Items属性的Add()方法向控件中添加项,Add()方法用于将项添至项的集合中。

public virtual ListViewItem Add(string text,int imageIndex)
☑ text:项的文本。
☑ imageIndex:要为该项显示的图像的索引。
☑ 返回值:已添加到集合中的ListViewItem。

        在ListView控件中添加完项目后,可以用CheckBoxes属性显示复选框,以便用户可以选中要对其执行操作的项。

2.移除和清空项 

        通过使用控件的Items属性的RemoveAt()或Clear()方法可以移除控件中的项。RemoveAt()方法移除指定的项,而Clear()方法移除列表中的所有项。

RemoveAt()方法用于移除集合中指定索引处的项。
public virtual void RemovedAt(int index)
index:从零开始的索引(属于要移除的项)。

        Clear()方法用于从集合中移除所有项。

public virtual void Clear()

        在删除ListView控件中的项目前,必须对项目的个数进行判断。如果为0,则不进行项目的删除;否则会触发异常

3.源码

//Form1.cs
//ListView控件(列表视图控件)
//添加移除清空
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _03
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        
        /// <summary>
        /// 初始化Form1
        /// </summary>
        private void Form1_Load(object sender, EventArgs e)
        {
            button1.Text = "提交";
            button2.Text = "移除项";
            button3.Text = "清空项";
            label1.Text = "移除项index=1";

            button1.Font = new System.Drawing.Font("宋体", 10F);
            button2.Font = new System.Drawing.Font("宋体", 10F);
            button3.Font = new System.Drawing.Font("宋体", 10F);
            label1.Font = new System.Drawing.Font("宋体", 10F);
            listView1.Font = new System.Drawing.Font("宋体", 10F);
        }

        /// <summary>
        /// 添加项
        /// </summary>
        private void Button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                MessageBox.Show("输入文字不能为空,请输入");
            }
            else
            {
                //listView1.Items.Add(textBox1.Text);   
                listView1.Items.Add(textBox1.Text.Trim());  //等效语句
                /*textBox1.Text = string.Empty; */          //每次添加后清空文本框
                textBox1.Text = "";                         //等效语句
            }
        }
        
        /// <summary>
        /// 移除指定索引=1的项
        /// </summary>
        private void Button2_Click(object sender, EventArgs e)
        {
            if (listView1.Items.Count == 0)
            {
                MessageBox.Show("项目已空,请添加后再测试移除");
            }
            else if (listView1.Items.Count == 1)
            {
                listView1.Items.RemoveAt(0);
            }
            else
            {
                //listView1.Items.RemoveAt(1);
                listView1.Items.RemoveAt(listView1.Items[1].Index); //等效语句
                listView1.SelectedItems.Clear();                    //可有可无
            }
        }

        /// <summary>
        /// 清空所有项
        /// </summary>
        private void Button3_Click(object sender, EventArgs e)
        {
            if(listView1.Items.Count == 0)
            {
                MessageBox.Show("项目已空,请添加后在测试清空");
            }
            else 
            { 
                listView1.Items.Clear();
            }
        }
    }
}

4.生成效果 

        流程:加载 → 提交→移除2次→再加载2次→移除→清空→清空,有提示→移除,有提示。

 

二、选择ListView控件中的项

        通过控件的Selected属性设置控件中的选择项。Selected属性用于获取或设置一个值,该值指示是否选定此项。 

public bool Selected{get;set;}
属性值:如果选定此项,则为true;否则为false。

        如果用按钮控件选择ListView控件中的项,除了用Selected属性选择指定的项外,还通过Focus()方法使ListView控件获得焦点。

三、为ListView控件中的项添加图标

        如果为ListView控件中的项添加图标,则需要与ImageList控件相结合。 

1.设置listView图片属性

        设置listView1的图片(Images)属性(SmallImageList、LargeImageList或StateImageList),并与ImageList组件建立关联。

listView1.LargeImageList = imageList1;
imageList1.ImageSize = new Size(37, 36);

imageList1.Images.Add(Image.FromFile("01.png"));
imageList1.Images.Add(Image.FromFile("02.png"));
imageList1.Images.Add(Image.FromFile("03.jpg"));

2.设置listView文字属性

        设置listView1的文字(Items)属性(SmallImageList、LargeImageList或StateImageList),并添加文字。

listView1.SmallImageList = imageList1;
listView1.Items.Add("支付宝");
listView1.Items.Add("微信支付");
listView1.Items.Add("银联钱包");

3.图片(Images)属性和文字(Items)属性建立关联

        设置ImageIndex或StateImageIndex属性,ListView控件的图片(Images)属性和文字(Items)属性建立关联、配对。

        这些属性可在代码中通过编程设置,也在“ListViewItem集合编辑器”中进行手动设置。    

//Items[]和ImageIndex建立关联
listView1.Items[0].ImageIndex = 0;
listView1.Items[1].ImageIndex = 1;
listView1.Items[2].ImageIndex = 2;

4.源码

//Form1.cs
//ListView控件

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _06
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// listView1填满父窗体
        /// 设置listView1项目的图片是大图标37*36
        /// 给imageList1添加图标
        /// 设置listView1项目的文字是小图标
        /// listView1项目索引
        /// 选中listView1项目
        /// </summary>
        private void Form1_Load(object sender, EventArgs e)
        {
            listView1.Dock = DockStyle.Fill;

            //设置图标属性
            listView1.LargeImageList = imageList1;
            imageList1.ImageSize = new Size(37, 36);
            imageList1.Images.Add(Image.FromFile("01.png"));
            imageList1.Images.Add(Image.FromFile("02.png"));
            imageList1.Images.Add(Image.FromFile("03.jpg"));

            //设置索引文字属性
            listView1.SmallImageList = imageList1;
            listView1.Items.Add("支付宝");
            listView1.Items.Add("微信支付");
            listView1.Items.Add("银联钱包");
            
            //图标与索引文字建立关联
            listView1.Items[0].ImageIndex = 0;
            listView1.Items[1].ImageIndex = 1;
            listView1.Items[2].ImageIndex = 2;

            //选中
            listView1.Items[2].Selected = true;           
        }
    }
}

5.生成效果

 

四、ListView控件中启用平铺视图

        启用ListView控件的平铺视图功能,可以在图形信息和文本信息之间提供一种视觉平衡。为平铺视图中的某项显示的文本信息与为详细信息视图定义的列信息相同。在ListView控件中,平铺视图与分组功能或插入标记功能一起结合使用。如果要启用平铺视图,需要将View属性设置为Tile,可以通过手动设置TileSize属性来调整平铺的大小。

1.源码

//Form1.cs
//在ListView控件中启用平铺视图
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _07
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            listView1.Dock = DockStyle.Fill;    //listView1填满父窗体
            listView1.View = View.Tile;         //平铺

            //设置listview1的Images图片属性
            listView1.LargeImageList = imageList1;
            imageList1.Images.Add(Image.FromFile("01.png"));
            imageList1.Images.Add(Image.FromFile("02.png"));
            imageList1.Images.Add(Image.FromFile("03.png"));
            imageList1.Images.Add(Image.FromFile("04.png"));
            imageList1.Images.Add(Image.FromFile("05.png"));

            //设置listview1的Itemss文本属性
            listView1.Items.Add("支付宝");
            listView1.Items.Add("微信支付");
            listView1.Items.Add("小度钱包");
            listView1.Items.Add("京东白条");
            listView1.Items.Add("苏宁任性付");

            //建立Images图片属性和Itemss文本属性的关联
            listView1.Items[0].ImageIndex = 0;
            listView1.Items[1].ImageIndex = 1;
            listView1.Items[2].ImageIndex = 2;
            listView1.Items[3].ImageIndex = 3;
            listView1.Items[4].ImageIndex = 4;

            //设置listview1平铺每个项目尺寸
            //listView1.TileSize = new System.Drawing.Size(100,40);
            listView1.TileSize = new Size(100, 40); //等效语句
        }
    }
}

2.生成效果

 

五、ListView控件中的项分组

        设置各个项的System.Windows.Forms.ListViewItem.Group属性,可以向组分配项或在组之间移动项。如果想要临时禁用分组功能,可将ShowGroups属性设置为false。

1.添加组

        使用Groups集合的Add()方法可以向控件中添加组,Add()方法用于将指定ListViewGroup添加到集合。

public int Add(ListViewGroup group)
☑ group:要添加到集合中的ListViewGroup。
☑ 返回值:该组在集合中的索引。或者,如果集合中已存在该组,则为-1。

2.移除组

        使用Groups集合的RemoveAt或Clear()方法,可以移除指定的组或者移除所有的组。

RemoveAt()方法移除集合中指定索引位置的组。Clear()方法用于从集合中移除所有组。

public void RemoveAt(int index)
index:要移除的ListViewGroup的集合中的索引。
public void Clear()

3.向组分配项或在组之间移动项

        设置各个项的System.Windows.Forms.ListViewItem.Group属性,可以向组分配项或在组之间移动项。

        如果想要临时禁用分组功能,可将ShowGroups属性设置为false。

4.源码 

//Form1.cs
//为ListView控件中的项分组
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _08
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //初始化listView1并通过切换View选项调试View效果
            listView1.Dock = DockStyle.Fill;
            //listView1.View = View.SmallIcon;
            //listView1.View = View.LargeIcon;
            //listView1.View = View.List;       //此时,分组无效           
            //listView1.View = View.Details;    //此时,只显示分组不显示Items
            listView1.View = View.Tile;         //比SmallIcon效果更好

            //建立两个组
            listView1.Groups.Add(new ListViewGroup("大型股份制银行", HorizontalAlignment.Left));   
            listView1.Groups.Add(new ListViewGroup("地方银行", HorizontalAlignment.Left));         

            //向空间中添加项目
            listView1.Items.Add("中国银行");
            listView1.Items.Add("中国工商银行");
            listView1.Items.Add("中国建设银行");
            listView1.Items.Add("中国农业银行");
            listView1.Items.Add("徽商银行");
            listView1.Items.Add("哈尔滨银行");
            listView1.Items.Add("温州银行");
            listView1.Items.Add("华夏银行");

            //按照索引分组
            listView1.Items[0].Group = listView1.Groups[0];
            listView1.Items[1].Group = listView1.Groups[0];
            listView1.Items[2].Group = listView1.Groups[0];
            listView1.Items[3].Group = listView1.Groups[0];
            listView1.Items[4].Group = listView1.Groups[1];
            listView1.Items[5].Group = listView1.Groups[1];
            listView1.Items[6].Group = listView1.Groups[1];
            listView1.Items[7].Group = listView1.Groups[1];

            //设置控件Size属性
            listView1.TileSize = new Size(100, 40);
        }
    }
}

5. 生成效果

. . .

相关推荐

额外说明

finally和return的执行顺序

try() ⾥⾯有⼀个return语句, 那么后⾯的finally{}⾥⾯的code会不会被执⾏, 什么时候执⾏, 是在return前还是return后? 如果try中有return语句, 那么finally中的代码还是会执⾏。因为return表⽰的是要

额外说明

idea同时运行两个一样的Test单元测试

设置 分别启动 效果

额外说明

Java 从当前月份获取上个月

      SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM"); try { String payoffYearMonth = "2018-06";

额外说明

全网唯一Kirin V10SP1服务器操作系统虚拟内存设置实用案例

新安装部署完麒麟V10运维的小伙伴需要配置一下扩展虚拟内存,本人建议物理内存比例1:1,比如内存是64G,虚拟内存也配置64G! 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化、云计算、大数据、工业互联

额外说明

STM32四轴飞行器

小马哥STM32四轴飞行器 原理图解析 小马哥 DragonFly四轴 软件开发 13 STM32 SPI总线通讯 SPI 总线协议简介 SPI 物理层 SPI 协议层 SPI 通信时序 STM32硬件SPI接口简介 SPI接口 利用库函数初始化配置 原

额外说明

【Python 千题 —— 基础篇】字符串拼接

题目描述 题目描述 我们在编程过程中经常会遇到把不同字符串拼接在一起的情况,从而更直观地展示给用户我们所要表达的信息。本题将给出两个字符串,请依次将这两个字符串拼接在一起。 输入描述 输入两个字符串,用回车分开。 输出描述 程序将输入的两个字符串依次拼接

额外说明

垃圾回收算法(第二部分)

清除阶段 当成功的分出内存存活对象和死亡对象后,GC接下来的任务就是执行垃圾回收,释放掉无用对象所占用的内存空间,以便有足够的可用内存空间为新对象分配内存。 目前在JVM中比较常见的三种辣鸡收集算法是标记-清除算法(Mark-Sweep)、复制算法(Co

额外说明

RandomAccessFile类使用详解

RandomAccessFile类使用详解 1.RandomAccessFile特点 RandomAccessFile是java Io体系中功能最丰富的文件内容访问类。即可以读取文件内容,也可以向文件中写入内容。但是和其他输入/输入流不同的是,程序可以直

额外说明

Windows系统MMDevAPI.dll文件丢失找不到的解决办法

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个MMDevAPI.dll文件

ads via 小工具