C# Winform ListView用法-程序员宅基地

技术标签: c#  C# Winform  

目录

添加标题

显示网格

添加数据到表格中

自定义其他属性

结束


添加标题

在 Winfrom 界面中添加一个 ListView 组件,然后点击右上角的箭头,点击编辑列

添加下面标题,然后点击确定

此时 ListView 中还是一片空白,不能显示这些标题,在视图这里选择 Details

就会如下图所示,虽然标题出来了,内容确实一块白版,此时还是觉得 DataGridView 组件好用啊

显示网格

此时,表格只是一片空白,可以在属性面板中设置,显示网格,如下图

 

 这时,就如下图所示,效果就出来了,但是里面还是缺点东西

添加数据到表格中

不会添加数据怎么办?直接从网上复制,如下:

private void Button_Test_Click(object sender, EventArgs e)
{
    //数据更新,UI暂时挂起,直到EndUpdate绘制控件,可以有效避免闪烁并大大提高加载速度
    this.listView1.BeginUpdate();
    //添加5行数据
    for (int i = 0; i < 5; i++)   
    {
        ListViewItem lvi = new ListViewItem();
        lvi.SubItems.Add("第1列,第" + i + "行");
        lvi.SubItems.Add("第2列,第" + i + "行");
        lvi.SubItems.Add("第3列,第" + i + "行");
        lvi.SubItems.Add("第4列,第" + i + "行");
        lvi.SubItems.Add("第5列,第" + i + "行");
        this.listView1.Items.Add(lvi);
    }
    //结束数据处理,UI界面一次性绘制。
    this.listView1.EndUpdate(); 
}

运行后,我们看看效果,what? 第一行序号居然没有数据,这是什么鬼?

断点看看,ListViewItem 数组索引 0 处居然是空的

用下面代码测试了一下,效果同上一模一样,在数组0处就是添加了一个默认空的数据进去

private void Form1_Load(object sender, EventArgs e)
{
    ListViewItem litem = new ListViewItem();
    for (int i = 0; i < 5; i++)
    {
        litem.SubItems.Add(i.ToString());
    }
    Console.WriteLine(litem.SubItems.Count);
}

找了一下资料,不知道怎么回事,但是我还是找到了解决方法:

private void Button_Test_Click(object sender, EventArgs e)
{
    //数据更新,UI暂时挂起,直到EndUpdate绘制控件,可以有效避免闪烁并大大提高加载速度
    listView1.BeginUpdate();
    //添加5行数据
    for (int i = 0; i < 5; i++)   
    {
        int column = i + 1;
        ListViewItem lvi = listView1.Items.Add("第1列,第" + column + "行");
        lvi.SubItems.Add("第2列,第" + column + "行");
        lvi.SubItems.Add("第3列,第" + column + "行");
        lvi.SubItems.Add("第4列,第" + column + "行");
        lvi.SubItems.Add("第5列,第" + column + "行");
    }
    //结束数据处理,UI界面一次性绘制。
    listView1.EndUpdate(); 
}

这种写法看着非常的淡疼,暂时也没其他办法了,有其他更好的写法欢迎留言告诉我。

现在效果算是有了,但我想改变其中一个单元格的属性怎么办呢?

自定义其他属性

例1:改变背景颜色,和字体颜色

private void Button_Test_Click(object sender, EventArgs e)
{
    //数据更新,UI暂时挂起,直到EndUpdate绘制控件,可以有效避免闪烁并大大提高加载速度
    listView1.BeginUpdate();
    //添加5行数据
    for (int i = 0; i < 5; i++)
    {
        int column = i + 1;
        ListViewItem lvi = listView1.Items.Add("第1列,第" + column + "行");
        lvi.SubItems.Add("第2列,第" + column + "行");
        lvi.SubItems.Add("第3列,第" + column + "行");
        lvi.SubItems.Add("第4列,第" + column + "行");
        lvi.SubItems.Add("第5列,第" + column + "行");
        if (column % 2 == 0)
        {
            lvi.BackColor = Color.Red;
            lvi.ForeColor = Color.White;
        }
        else
        {
            lvi.BackColor = Color.Green;
            lvi.ForeColor = Color.Black;
        }     
    }
    //结束数据处理,UI界面一次性绘制。
    listView1.EndUpdate(); 
}

效果:

 其他的属性就不作演示了,写法差不多。

结束

如果这个帖子对你有用,欢迎关注 + 点赞 + 留言,谢谢

end

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38693757/article/details/123017554

智能推荐

(Java毕业设计)图书馆书库管理系统(基于SSM框架)附源码_基于ssm框架java图书管理设计zip文件-程序员宅基地

文章浏览阅读520次。如今生活节奏也是不断加快,越来越多的喜欢看书的人选择通过网上在线租赁图书方式租赁图书,为了更好的方便消费者和图书馆管理人员,结合目前流行的在线经营理念,让每一本图书能够让更多的读者阅读。该系统前端使用JQuery框架对DOM操作,后端代码使用Java语言编写的,高效快速。数据库管理系统使用开源软件MYSQL,节约成本。该网站页面简洁,能够让浏览网站的用户快速查询到自己想要获得的信息,并做出相应的处理。_基于ssm框架java图书管理设计zip文件

intellij idea tomcat 控制台日志乱码_idea +tomcat控制台乱码-程序员宅基地

文章浏览阅读5.7k次。只需要找到idea的然后打开问价增加:-Dfile.encoding=UTF-8 然后重启intellij idea 就行但是这个问题好了之后又出现了一个问题 那就是System.out.println("测试进入");这个在控制台输出的时候会乱码于是在idea 里 打开Tomcat 配置 在VM options 加入 -Dfile.encoding=..._idea +tomcat控制台乱码

hive--map数量过小导致hive运行缓慢_hive在map阶段特别的慢-程序员宅基地

文章浏览阅读2.2k次。map数量过小导致hive运行缓慢查看脚本发现参数_hive在map阶段特别的慢

SpringBoot跳转到静态html页面&&静态文件放置位置_springboot重定向到静态页面-程序员宅基地

文章浏览阅读3.1k次。SpringBoot跳转到静态html页面&&静态文件放置位置一、SpringBoot跳转到静态html页面1、在pom.xml中添加spring-boot-starter-thymeleaf。org.springframework.bootspring-boot-starter-thymeleaf2、在templates下建立a.html文件,新建qiu文件夹,并且在qiu文件夹中创建b.htmla.html内容如下:TitleAAaaAAb.html文件内容如下:T_springboot重定向到静态页面

android检测SD卡读写权限详情-程序员宅基地

文章浏览阅读854次,点赞11次,收藏8次。/减少是否拥有权限checkCallPhonePermission!//弹出对话框接收权限return;} else {=null){因为在android版本5.0以上才把SD卡的读写权限分离开,以前的老版本是没有进行分离的。故找不到SD卡的读写权限,而在测试的过程中,华为的手机出现SD卡读写权限分离在两个地方,有的时候可能不好找,本人就出现这个问题。

Vue不同组件之间的切换-程序员宅基地

文章浏览阅读874次,点赞14次,收藏8次。,},});使用v-if和v-else进行切换方式可以实现组件的切换,但是最多只能有2个,有一定的局限性。使用标签component来实现切换vueApp登录注册Vue提供了component,来展示对应名称的组件component是一个占位符,:is属性,用来指定要展示的组件的名称使用。

随便推点

系统移植作业2-程序员宅基地

文章浏览阅读71次。

pytorch报错:AttributeError: module ‘torch.sparse‘ has no attribute ‘torch‘_attributeerror: module 'torch' has no attribute 's-程序员宅基地

文章浏览阅读1.4k次。错误:File “E2Capsnet.py”, line 397, in testtarget = torch.sparse.torch.eye(NUM_CLASSES).index_select(dim=0, index=label)AttributeError: module ‘torch.sparse’ has no attribute ‘torch’原版程序:target = torch.sparse.torch.eye(NUM_CLASSES).index_select(dim=0, i_attributeerror: module 'torch' has no attribute 'sparse_csc

eclipse安装教程(win10版本,很全的)_下载eclipse只有打赏界面不下载-程序员宅基地

文章浏览阅读599次,点赞13次,收藏16次。Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完;在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;

LabVIEW深度学习-程序员宅基地

文章浏览阅读898次,点赞27次,收藏16次。外链图片转存中…(img-3dUeUMLs-1712877504572)][外链图片转存中…(img-05t50bFw-1712877504573)]

【Python爬虫教程】基础篇-01爬虫介绍与课程规划,记得把每一次面试当做经验积累-程序员宅基地

文章浏览阅读861次,点赞17次,收藏16次。外链图片转存中…(img-QyYDLFCu-1713428823598)][外链图片转存中…(img-givLAm64-1713428823598)]

服务器基础知识大科普_服务器基础知识介绍(服务器全部组件)-程序员宅基地

文章浏览阅读1w次,点赞31次,收藏158次。“服务器”-互联网之魂服务器被誉为互联网之魂。我第一次见到服务器是在学校图书馆,是一种机架式服务器。第二次见到服务器是在公司机房,本期文章是对服务器进行大盘点和梳理,会介绍我拆装服务器过程,从中的学习感悟。一、服务器1.1服务器与PC机大部分程序员见到的服务器也就是云服务器,知名的那几家公司:阿里云、腾讯云…都是著名的云服务器提供厂商。在学校写个网站啥的,学生就可以优惠买买买。不过今天我们介绍的是服务器而非云服务器。在学校的时候,老师会说:“你们用的电脑也是服务器”。是的,那么现在我们来讨论,P_服务器基础知识介绍(服务器全部组件)

推荐文章

热门文章

相关标签