winform中listview选中整行_listview修改选中行项的颜色和加加粗字体 Winform

在Winform应用中,通常需要通过改变ListView选中项的颜色和字体来提升用户体验。本文介绍了如何动态修改ListView选中项及选中行的颜色和字体。通过设置ListView的FullRowSelect属性,添加SelectedIndexChanged事件,并在事件处理中改变选中项的字体颜色和加粗,同时调整选中行的背景色,以突出当前选中状态。
摘要由CSDN通过智能技术生成

在 Winform 中,listview控件无法事先修改某一项的颜色和字体,在控件属性处修改的是所有行或项的颜色和字体。一般来说,常常要使选择的行或项与其它行或项颜色不同以标示当前项,常见如用户点击了某一分类,显示属于该类的所有产品,被点击的类就是当前类,得用光亮的颜色显示以区别其它类,从而引导用户一类类浏览,不至于搞得眼花瞭乱,这就是所谓的用户体验。

那么应该如何修改当前行或项的颜色和字体?这得用代码动态实现,下面举例说明。

一、创建一个listview列表

拖一个 listview 控件到主窗体中,并命名为 lv,向 lv 添加项(模拟分类)的代码如下:

private void AddCategory()

{

lv.FullRowSelect = false;

for(int i = 0; i < 11; i++)

lv.Items.Add(i.ToString());

}

二、修改选中项的颜色和加粗字体(分类)

首先为 listvew 添加选择索引改变事件 lv_SelectedIndexChanged,并在该事件中定如下代码:

private void lv_SelectedIndexChanged(object sender, EventArgs e)

{

if (lv.SelectedItems.Count > 0)

{

foreach (ListViewItem lvi in lv.Items)

lvi.ForeColor = Color.Black;

//修改选中项颜色

lv.SelectedItems[0].SubItems[0].ForeColor = Color.Red;

//加粗字体

Font f = new Font(Control.DefaultFont, FontStyle.Bold);

lv.SelectedItems[0].SubItems[0].Font = f;

//去掉选中项背景

lv.SelectedItems[0].Selected = false;

}

}

效果图如下:

图1

三、修改选中行的颜色和加粗字体(表格)

这里跟上面的方法用同一个 listview 控件,把 listview 设置成一个表格,代码如下:

private void AddListview()

{

lv.GridLines = true;

lv.View = View.Details;

lv.FullRowSelect = true;

lv.CheckBoxes = true;

lv.Columns.Add("学号", 100, HorizontalAlignment.Center);

lv.Columns.Add("姓名", 100, HorizontalAlignment.Center);

lv.Columns.Add("性别", 80, HorizontalAlignment.Center);

lv.Columns.Add("年龄", 80, HorizontalAlignment.Center);

ListViewItem lvi = new ListViewItem();

lvi.SubItems.Clear();

lvi.SubItems[0].Text = "001";

lvi.SubItems.Add("李睛云");

lvi.SubItems.Add("男");

lvi.SubItems.Add("20");

lv.Items.Add(lvi);

lvi = new ListViewItem();

lvi.SubItems[0].Text = "002";

lvi.SubItems.Add("龙丹玲");

lvi.SubItems.Add("女");

lvi.SubItems.Add("18");

lv.Items.Add(lvi);

lvi = new ListViewItem();

lvi.SubItems[0].Text = "003";

lvi.SubItems.Add("王露飞");

lvi.SubItems.Add("男");

lvi.SubItems.Add("19");

lv.Items.Add(lvi);

}

修改选中行的颜色和字体,跟上面的方法也一样(即 lv_SelectedIndexChanged(object sender, EventArgs e) 方法),运行效果图如下:

图2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值