.NET ListView 选择行怎么整行变色

就是像图片前部分那样 而不是后部分那样
2025-01-19 03:02:12
推荐回答(4个)
回答1:

通过改变ListViewItem及其ListViewSubItem的前景色,改变整行的颜色。实现方法如下

(1)在Visual Studio中新建一个“Windows 窗体应用程序”项目

(2)在Form1窗体设计器上添加一个ListView控件

(3)窗体代码Form1.cs

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Drawing;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            
            // 详细列表视图
            listView1.View = View.Details; 
            // 表头
            listView1.Columns.Add(new ColumnHeader() { Text = "类别" });
            listView1.Columns.Add(new ColumnHeader() { Text = "品名1" });
            listView1.Columns.Add(new ColumnHeader() { Text = "品名2" });
            
            // 添加一行
            ListViewItem item = listView1.Items.Add("水果");
            item.SubItems.Add("草莓");
            item.SubItems.Add("香蕉");
            // 改变前景色:墨绿色
            ChangeForeColor(item, Color.DarkGreen);

            // 添加一行    
            item = listView1.Items.Add("饮料");
            item.SubItems.Add("果汁");
            item.SubItems.Add("可乐");
            // 改变前景色:红色
            ChangeForeColor(item, Color.Red);
            
            // 添加一行
            item = listView1.Items.Add("文具");
            item.SubItems.Add("铅笔");
            item.SubItems.Add("橡皮");
            // 改变前景色:蓝色
            ChangeForeColor(item, Color.Blue);
        }

        void ChangeForeColor(ListViewItem item, Color newColor)
        {
            item.ForeColor = newColor;
            // 改变子项的颜色
            foreach (ListViewItem.ListViewSubItem si in item.SubItems)
            {
                si.ForeColor = newColor;
            }
        }
    }
}

(4)运行效果

回答2:

你先选中ListView控件。

然后,在“属性窗体”中将“FullRowSelect”设置为true即可。

“属性窗体”可以在,Visual Studio 的菜单“视图”->“属性管理器”

回答3:

FullRowSelect属性设为true

回答4:

选择模式变成FullRow就行了