【C#】C# Winform ListView用法
CrazyPanda发表于:2024-01-31 23:37:04浏览:378次
目录
添加标题
在 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
原文链接https://blog.csdn.net/qq_38693757/article/details/123017554
猜你喜欢
- 【C#】C# Winform DataGridView 数据刷新问题
- 目录一、问题二、创建项目三、绑定空的数据源四、绑定有数据的数据源五、修改绑定的数据源六、解决数据源刷新问题七、解决刷新数据界面闪烁一、问题DataGridView 是比较常用的表格控件,在 DataGridView 中显示数据, 一般使用 dataGridView1.DataSource = 数据源,来绑定数据,数据源可以是 DataTable、List、Dictionary 等,那么如何做到及时刷新数据呢,这里我提出几个问题:1.绑定一个空的数据源,后面向数据源添加数据。2.Data
- 【C#】从零开始用C#写一个桌面应用程序(二)一个表白程序
- 恶搞表白小程序如何添加按钮,如何添加属性和事件请移步前文。基础操作第一步:新建窗口 在工具箱内找到label和button,拖到form上,设置它们的size属性,autosize属性,text属性。第二步:添加事件为了实现我们的效果,需要给三个按钮分别设计点击事件,鼠标移入事件,鼠标点下事件。分别为click,mouseenter,mousedown事件。第三步:实现移动逻辑this获取form对象,clientsize获取实时大小,使用随机数值,设置对应按钮位置。将对应
- 【C#】C# Winform 文本面板带滚动条
- 在PC软件开发中经常有这样的需求,需要在一个固定大小的面板中显示一些内容,并且面板能上下拖动,将所有的内容完整的展示,有点类似网页上看新闻,如果要在 winfrom 中要如何实现的呢,下面就演示如何实现的吧效果:1.新建一个winform 项目,在界面中拖入一个Panel 将 panel1 的 AutoScroll 设置为 True2.再次拖入一个 Panel ,将高度拉长,这时就自动出现了滚动条,只是此时里面还没有任何内容,下面就在 panel2 中加入一点内容。
- 【C#】C# Winform Label 控件
- 目录一、概述二、基本用法1.控件内容显示2.控件的外观3.自定义控件的大小4.控件的内边距 5.设置文本的固定位置6.控件的事件结束一、概述Label 控件是 winform 开发中最常用的一个控件,一般用做显示文本,也有时用做打开链接等操作。二、基本用法新建一个 winform 项目,点击 form1 界面,找到工具箱,在工具箱里找到 Label ,拖入到界面即可。1.控件内容显示label 拖入界面中,如下,单击在属性界面就能看到具体的控件属性在这里有两个重要的属性:1.Name在
- 【C#】C# Winform SplitContainer组件创建侧边菜单
- 效果一,SplitContainer 基本操作新建一个 Winform 项目,在Form1中拖进一个 SplitContainer 组件默认的界面如下这时候,你会发现,左侧菜单栏的宽度也太宽了吧,按照以前的经验,你一定会用鼠标去拖拽,这时候你就会发现,鼠标根本拖不动,不信你可以试试这时候,我们按Esc键,鼠标再移动到边框的时候,鼠标图标就会变成一个 “+” 状的图标,这时候就可以拖拽了此时,左侧的Panel1内还没有任何组件,运行后的效果我们添加一个按钮到 Panel1 试试运行后发现
- 【C#】C# Winform 多个程序之间的通信(非Scoket)
- 效果功能:打开窗体自动连接主程序,并自动添加到列表,可以向子程序群发消息可以向单个程序单独发送消息在退出程序后,添加的程序列表会自动移除一、概述参考:C# Winfrom程序之间通讯_c# sendmessege copydatastruct 返回多个值_熊思宇的博客-CSDN博客在之前我写过 winform 程序与程序之间的通信,但是这个版本有个问题,那就是只能由两个程序进行通信,同时打开多个程序的话,接收方收到的数据就会一模一样,这次发表这个教程,也就是要解决这个问题。归根结底,还是&nbs
- 【C#】C# Winfrom Chart 图表控件 柱状图、折线图
- 目录一、参考二、柱状图1.新建项目2.修改图表样式3.绑定数据4.删除Series1图例1)使用属性窗体删除2)使用代码删除5.自定义X轴的刻度值1)使用List绑定2)使用LabelStyle.Format绑定6.自定义Y轴的刻度值7.X轴刻度值显示不全的解决方法8.修改X Y刻度值的字体样式9.X轴刻度值旋转90°10.禁用Y轴刻度线11.去掉Y轴刻度值12.改变柱子的宽度13.设置网格线的颜色14.设置网格线的线型三、折线图1.图表设置2.绑定数据结束效果:一、参考c# Chart设置样式
- 【C#】Winform NanUI 相关功能整合
- 目录NanUI 0.88版本 去掉启动界面(遮罩)NanUI 0.88版本 读取本地资源和嵌入式资源NanUI 0.77版本 打开控制台NanUI 0.77版本 C#调用多个参数的JS方法NanUI 0.77版本 传递数组参数NanUI 0.77版本 设置窗体全屏显示(类似Kiosk模式)NanUI 0.77版本 Bootstrap类 APINanUI 0.88版本 去掉启动界面(遮罩)启动界面是作者给我们显示公司产品的Logo用的,如果用不着可以去掉,但必须要更改源码,如果不想改源码,直接将启
栏目分类全部>
推荐文章
- 【Python】Python程序将本地时间转换为GMT时间
- 【UniApp】uniapp引入iconfont图标及使用方式
- 【UniApp】uniapp怎么去除子页面的左侧返回
- 【MySql】select * 查询慢的原因和优化方法
- 【UniApp】使用uniapp实现日历功能
- 【PHP】ThinkPHP与Laravel一样吗
- 【后端】PHP、Python、Java 和 Go语言对比
- 【Python】如何在Python中进行数据可靠性存储和恢复
- 【PHP】CI,ThinkPHP,YII,Laravel框架比较
- 【AntDesignPro】Ant Design Pro学习记录—ProTable的使用(二)