C#中设置ListView的ColumnsHeader的字体大小,颜色及背景色

C# ListView重绘,加图标、字体,重绘标题 新手小白,想要用listview做类似于windows自带文件管理界面的效果,走了很多坑,有需要来避坑啊~添加组件什么的就不细说了,主要说界面显示问题。首先一定要把ownerDraw属性设置为true。1.查找某文件下的文件并加到listview里。接下来直接放代码了,注释会写的比较清楚。 阅读详情
AI摘要

本文展示了如何在C#中设置ListView控件的OwnerDraw属性为true,然后通过处理DrawColumnHeader和DrawSubItem事件来自定义列头的字体、底色以及子项的显示。通过这种方式,可以实现对WindowsForms应用中ListView控件的视觉增强。

首先对属性OwnerDraw设置为true:

  private void Form1_Load(object sender, EventArgs e)
        {
            listView1.View = View.Details;
            listView1.Columns.Add("Name");
            listView1.Columns.Add("Age");
            listView1.Columns.Add("Id");
            listView1.Items.Add(new ListViewItem(new string[] { "John  ", "15", "1001" }));
            listView1.Items.Add(new ListViewItem(new string[] { "Jack  ", "18", "1002" }));
            listView1.Items.Add(new ListViewItem(new string[] { "Json  ", "19", "1003" }));
            listView1.OwnerDraw = true;
        }

其次,完成下面两个事件的处理:

第一个事件是对列头的字体、底色处理

  private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
        {
            if(e.ColumnIndex %2 ==1)//列的序号为单列的处理,1/3/5
            {
                StringFormat format = new StringFormat();
                format.Alignment = StringAlignment.Center;
                e.DrawBackground();
                e.Graphics.FillRectangle(Brushes.Pink, e.Bounds);   //设置背景颜色
                Font font = new Font("Arial",8,FontStyle.Bold);      //设置字体大小
                e.Graphics.DrawString(e.Header.Text, font, Brushes.Black, e.Bounds, format); //设置字体颜色
            }
            else//列的序号为双列的处理,0/2/4
            {
                //类似
            }
        }

        private void listView1_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
        {
            e.DrawBackground();//背景色保留,若不添加该语句,则其他地方对ListView的底色处理会不生效
            e.DrawText();//若不添加该语句,则ListView内容为空,无法刷新,其他地方对ListView的赋值会不生效
        }

效果如下:

 

WinForm应用中的ListView行颜色变化及分屏技术演示 ListView控件是Windows窗体应用程序中常用的组件之一,它可以显示一系列的条目,每一个条目可以包含多列数据。在这一章节中,我们将介绍如何在WinForm中基本地使用ListView控件,并展示其简单的功能和配置。 阅读详情

相关推荐

深入解析车载以太网DoIP诊断:Wireshark实战TCP/UDS报文分析

本文深入解析车载以太网DoIP诊断,重点介绍如何利用Wireshark进行TCP/UDS报文实战分析。文章详细讲解了从以太网帧、IP帧、TCP段到DoIP协议及UDS服务的逐层拆解方法,并提供了使用Wireshark定位通信故障(如乱序、丢包、重传)的实用技巧,帮助工程师高效排查车载诊断网络问题。

c2d3e4f的博客 674

C#ListView控件更改单元格颜色

C#ListView控件更改单元格颜色 ListView控件是比较常用的一种控件,它可以按照列表的形式显示出有组织的内容。如下: 可以通过设置ListView的View属性来设置ListView控件的显示外观,上图的样式设置为Detail,ShowGroups参数设置为false后的结果。 有时会遇见需要更改单元格颜色的情况如下: 那么该怎样实现上面的效果呢? 下面介绍常用的方法: 1、直接通...

weixin_40786497的博客 7594

后仿之 SDF优先级和相关概念

综上:在后仿中,工具(vcs)看起来对于negative interconnect的处理如下:a. 查看此negative INTERCONNECT语句所对应的destination cell中是否有PORT语句:b. 如果PORT delay的值大于等于INTERCONNECT的绝对值,就从PORT中消耗掉对应的负值。c. 如果PORT delay不够用,就查看destination cell中是否有IOPATH或DEVICEm有IOPATH或DEVICE,并且够用(任意一种够用就行),就消耗掉。

qq_24434431的博客 1107

【C#语言】DataGridView修改某一行或者某个单元的背景颜色或者字体颜色(包括列表头的颜色)

修改DataGridView其中某一行字的颜色;也可以修改某个单元字体的颜色。同理可以修改某一行的背景色或者某个单元的背景颜色。

huangleiisme的博客 1万+

人脸情绪识别(使用深度学习和OpenCV)

基于opencv与深度学习的人脸情绪识别系统

mx0390304的博客 8251

VASPKIT绘制平面平均电荷差分密度

平面平均密度差(planar-averaged electron density difference)是密度差的衍生。密度差是个三维空间函数,经常通过绘制平面图、等值面图方式图形化考察。虽然这两种图很直观,但平面图会受到截面选取的影响,而等值面图会受到等值面数值(isovalue)选取的影响,因此都有一定任意性,也不容易定量讨论。对于电子转移有比较明确方向的情况,可以绘制平面平均密度差曲线,由此可以清楚地考察垂直于选取的方向上每个截面上的密度差积分值,在定量讨论、对比上比较便利。

weixin_43948934的博客 1万+

listview中的字体设置为不同颜色

listView.Items[i].ForeColor = Color.Red;//将ListView的整行颜色设置为红色 listView.Items[i].SubItems[j].ForeColor =Color.Red;//如果想把一行中单个字段设置成红色 在上述单个字段设置颜色时候如果发现没有效果,那么需要修改一下单行的一个属性。就是编辑项,把你要修改的那一行的useitemstyle

fener10289的专栏 3151

GPU大规模集群运维

CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的通用并行计算平台和程序模型,该架构使GPU能够解决复杂的计算问题。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员可以使用C语言来为CUDA架构编写程序,所编写出的程序可以在支持CUDA的处理器上以超高性能运行。CUDA官方文档CUDA的软件环境允许开发者使用C++等高级编程语言开发程序。

weixin_42795092的博客 1736

C# ListView设置标题头背景颜色和字体颜色

如果需要在ListView中绑定实体类对象的话,需要将数据放在Tag属性里获取数据时,将Tag转换回自己的实体类对象就可以。

zcn596785154的博客 1160

python实现序列比对之Needleman-wunsch算法 (附完整源码)

python实现序列比对之Needleman-wunsch算法 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 459

Yield Management软件:Lam Research二次开发_(5).缺陷分析与分类方法

在半导体制造过程中,缺陷分析和分类是提高良率管理(Yield Management)的关键步骤。通过准确地识别和分类缺陷,可以更好地理解工艺过程中的问题,从而采取有效的措施来提高生产效率和产品质量。本节将详细介绍缺陷分析和分类的方法,包括缺陷检测、特征提取、分类算法及其在Lam Research软件中的应用。

2401_87715305的博客 687

listview winfrom 表头_C# 设置Listview的Columns标头颜色和高度

首先,需要设置ListView控件的OwnerDraw属性为true,这使得ListView控件在绘制控件时会引发绘制事件,而我们可以响应这些事件并按照我们的要求绘制出想要的效果。以下三个事件响应方法完成了对标题列的背景色的设置,而对项和子项的绘制则采用系统默认方式绘制,事件的名称可以从方法名称中看出来:private void listView1_DrawColumnHeader(object ...

weixin_33155857的博客 3510

大学生作业:80C51存储器数据传输实验:基本指令和数据传送

大学生作业:80C51存储器数据传输实验,报价 200 文章目录实验一、80C51存储器数据传输实验实验目的:实验内容一:基本指令实验内容二:数据传送 实验一、80C51存储器数据传输实验 实验目的: 熟悉软件的集成开发环境 掌握单片机软件设计流程,掌握存储器结构及各窗口之间的联系 掌握内部数据存储器、外部数据存储器的数据传送特点和应用; 实验内容一:基本指令 用三种方法实现将累加器A内容改为20H ORG 0000H LJMP MAIN ORG 0030H MAIN: ;方法一使用寄

weixin_54707168的博客 5099

C# ListView用法详解

获取或设置项在控件中的显示方式,包括Details、LargeIcon、List、SmallIcon、Tile(默认为 LargeIcon):可以显示任意的列,但只有第一列可以包含一个小图标和标签,其它的列项只能显示文字信息,有列表头。:设置是否可拖动列标头来对改变列的顺序。(默认为false)提示:只有在Details视图该属性才有意义。:设置用户是否可以编辑控件中项的标签,对于Detail视图,只能编辑行第一列的内容。(默认为false)提示:只有在Details视图该属性才有意义。

weixin_53370274的博客 4926

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

WinForm中ListView设置选中行背景颜色,字体格式

private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)         {             listView1.FullRowSelect = true;             if (this.listView1.Selected

u010613052的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

c#中listview选中后改变背景颜色

      在winform窗口编程的过程中,窗口中有个listview,今天我们要聊得就跟listview有关。如果listview中有很多行,那么我在选中listview其中一行后,在点击窗口中其他按钮的时候,会发现listview中选中行的背景颜色又变成了原来的默认颜色。搞得我都不知道自己选的是哪行了,那么如何使c#在选中某一行后,在点击窗体中的其他按钮后,使选中行还会保留一定的颜色,从而让...

邹良开的博客 9830

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

如何设置ListView控件中的列头的颜色!

ListView默认的列头的背景太单调,缺乏个性,想变的列头的背景色! 实际上可以使用ListViewDrawColumnHeader事件自己画背景色,注意仅当 OwnerDraw 属性设置为 true 且 View 属性设置为 View. Details 时才引发此事件!不多说了,大家看代码,过程很简单: private void listView1_DrawCol...

weixin_30832983的博客 485

ListView 更改表头字体颜色

对于强迫症的我来说,ListView控件的表头字体一直是黑色无法更改是一个很蛋疼的问题。在网上查阅了很多资料但是写法都比较繁琐。 于是我直接分析了微软的源码,他是在DrawListViewColumnHeaderEventArgs这个类里面实现的绘制标题。源码如下: public void DrawText() { Horizonta

Spysoft 6127

ListView修改字体颜色

Android 默认的ListView 控件是不支持更改字体颜色,或是字体Style。 如果想实现这个功能,需要自己编写一些代码 步骤1: 定义一个ListView item的资源xml,将其放入res/layout/目录下,比如list_item1.xml,内容为: android:id="@+id/text1" android:layout_width="fill_paren

mddy2001的专栏 2104

C#中改变ListView中ColumnHeader的颜色

下面图是我改变后的效果,红色的是ListView的ColumnHeader:          步骤1:         将ListView的OwnerDraw属性改为True       步骤2:         建立ListView的DawColumnHeader消息函数       步骤3:         代码如下:    p

u011737099的专栏 5588

C#listview控件修改每个单元格的颜色修改一行中不同列的颜色

来源:https://www.cnblogs.com/mingjiatang/p/3808765.html ListViewItem item; item = new ListViewItem(new string[] { "NAME","" }); item.UseItemStyleForSubItems = false; 只需要将ListView的每一项的UseItemStyl...

Johnisjohn的博客 1842

C# winform中,简单实现Listview.Subitem.BackColor.ForeColor改变字体颜色,Listview.Subitem.BackColor 改变背景

做项目的时候,客户的查询结果中要在listview中亮显查询关键字.在网上找了半天,没有合适的代码.于是就自己琢磨了一下.贴出代码,希望对大家有所帮助.注意事项:        一定要把listview的OwnerDraw属性设置为True(默认是False)。       当设置OwnerDraw = True后,FullRowSelect 、HideSelection 属性好象实效了。

Eva_Lee的专栏 7022

listview改变单个单元格的背景色

ListViewItem lvi = listView1.Items[1]; lvi.UseItemStyleForSubItems = false; System.Windows.Forms.ListViewItem.ListViewSubItem lvsi = lvi.SubItems[1]; l...

weixin_30896825的博客 681

修改listview字体的颜色

最近写了一个程序需要设置listview的字体大小和字体颜色,所以在这里作下记录   要更改listview的字体大和颜色,要自定义一个识配器,用于再次添加下这些元素  例子如下: private class MyAdapter extends BaseAdapter {                 @Override                public int getCo

x_zliang的专栏 1711
上一篇: C# Winform panel中添加子窗口时,子窗口出现错位问题
下一篇: Mysql数据库当字段由非0变为0,触发写入另一个数据表,创建触发器
Micro_Ryan
博客等级 码龄12年 27粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值