在 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