C#中listview如何分组显示。?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中listview如何分组显示。?相关的知识,希望对你有一定的参考价值。
我想把我查询出的结果“姓名‘”性别“分组显示出来
添加listview"lvwItems"后Edit Column,添加列头
itemView = itemManager.ItemCollection;
从数据源获取数据集合
foreach(Item itm in itemView)
ListViewItem lviI = new ListViewItem(itm.ItemName); "%");
itemView = itemManager.ItemCollection;
lviI.SubItems.Add(itm.ItemType.ToString());
lviI.SubItems.Add(itm.ItemInput.ToString());
lviI.SubItems.Add(itm.ItemRate.ToString()+
lviI.SubItems.Add(itm.ItemTime.ToString());
lviI.Tag = itm.ItemID;
lvwItems.Items.Add(lviI);
遍历数据集合ItemView并获取数据,生成ListViewItem对象Lvil,添加到lvwItems.Items里
(lviI.SubItems.Add(itm.ItemType.ToString());这句就是添加每一列的值,作为subItem)
listView2.Groups.Clear();
listView2.Items.Clear();
listView2.View = View.LargeIcon;
ColumnHeader columnHeader0 = new ColumnHeader();
columnHeader0.Text = "Title";
columnHeader0.Width = 200;
ColumnHeader columnHeader1 = new ColumnHeader();
columnHeader1.Text = "Author";
columnHeader1.Width = 200;
ColumnHeader columnHeader2 = new ColumnHeader();
columnHeader2.Text = "Year";
columnHeader2.Width = 100;
if (listView2.Columns.Count < 3)
listView2.Columns.AddRange(new ColumnHeader[] columnHeader0, columnHeader1, columnHeader2 );
ListViewGroup group1 = new ListViewGroup("001");
ListViewGroup group2 = new ListViewGroup("002");
listView2.Groups.Add(group1);
listView2.Groups.Add(group2);
// Create items and add them to myListView.
ListViewItem item0 = new ListViewItem(new string[]
"Programming Windows", "Petzold, Charles", "1998" , 0, group1);
ListViewItem item1 = new ListViewItem(new string[]
"Code: The Hidden Language of Computer Hardware and Software", "Petzold, Charles", "2000" , 0, group1);
ListViewItem item2 = new ListViewItem(new string[]
"Programming Windows with C#", "Petzold, Charles", "2001" , 0, group1);
ListViewItem item3 = new ListViewItem(new string[]
"Coding Techniques for Microsoft Visual Basic .NET", "Connell, John", "2001" , 1, group2);
ListViewItem item4 = new ListViewItem(new string[]
"C# for Java Developers", "Jones, Allen & Freeman, Adam", "2002" , 1, group2);
ListViewItem item5 = new ListViewItem(new string[]
"Microsoft .NET XML Web Services Step by Step", "Jones, Allen & Freeman, Adam", "2002" , 1, group2);
listView2.Items.AddRange(new ListViewItem[] item0, item1, item2, item3, item4, item5 );
private void button2_Click(object sender, EventArgs e)
listView2.View = View.Details;
C#中如何将txt文件在ListView中按列显示
参考技术A你好,软糖帮你做了一个读取TXT的程序。
这个数据格式需要有分割符才好被切分。处理成类似下面这样的
商品编码:001,商品名称:香蕉250g, 中类名称:水果, 规格型号:A1,计量单位:吨, 订货数量:3400,库存数量:3400,商品产地:哥伦比亚
商品编码:002,商品名称:梨子500g, 中类名称:水果, 规格型号:A1,计量单位:吨, 订货数量:6400,库存数量:3400,商品产地:菲律宾
商品编码:003,商品名称:芒果750g, 中类名称:水果, 规格型号:A1,计量单位:吨, 订货数量:7400,库存数量:3400,商品产地:泰国
商品编码:004,商品名称:牛奶250ml, 中类名称:奶制品, 规格型号:A1,计量单位:箱, 订货数量:84000,库存数量:3400,商品产地:新西兰
然后上代码咯,主要用一个DataTable暂存数据,以免出现某字段缺失导致的错位。
然后使用StreamReader读取TXT文本,最后把DataTable的数据集逐项添加到ListView,详细用法请看代码。
using System.IO;namespace ListView用法
public partial class Form1 : Form
//第一个字段为主键:商品编码
List<string> 字段列表 = new List<string>()
"商品编码", "商品名称", "中类名称", "规格型号",
"计量单位", "订货数量", "库存数量", "商品产地" ;
List<int> 显示宽度 = new List<int>() 80, 120, 80, 80, 80, 80, 100, 160 ;
public string[] 分隔符 = "," ;
public string[] 值分隔符 = ":" ;
public string 数据文件路径 = @"J:\\Mini\\ListView用法\\ListView用法\\TestData.txt";
DataTable 数据表;
public Form1()
InitializeComponent();
private void Form1_Load(object sender, EventArgs e)
listView1.View = View.Details;
for (int i = 0; i < 字段列表.Count; i++)
string 字段名 = 字段列表[i];
listView1.Columns.Add(字段名, 字段名, 显示宽度[i]);
var k = listView1.Items.Add("暂无数据");
k.BackColor = Color.LightPink;
private void 测试()
初始化数据表();
读取文档到数据表(数据文件路径);
显示在listview();
private void 初始化数据表()
数据表 = new DataTable();
for (int i = 0; i < 字段列表.Count; i++)
string 字段名 = 字段列表[i];
数据表.Columns.Add(字段名, typeof(string));
private void 读取文档到数据表(string 路径)
StreamReader sr = new StreamReader(路径, Encoding.Default);
while (true)
string 行文本 = sr.ReadLine();
if (行文本 == null) break; else
//开始逐行分析文本
if (行文本.Length > 1)
//这里分隔符必须是一个string数组,可以只有一个元素
var 数据 = 行文本.Split(分隔符, StringSplitOptions.RemoveEmptyEntries);
if (数据 != null && 数据.Length > 0)
DataRow row = 数据表.NewRow();
foreach (var 项 in 数据)
var 字段和值 = 项.Split(值分隔符, StringSplitOptions.RemoveEmptyEntries);
if (字段和值 != null && 字段和值.Length >= 2)
var 字段 = 字段和值[0].Trim();
var 值 = 字段和值[1].Trim();
if (字段列表.Contains(字段)) row[字段] = 值;
数据表.Rows.Add(row);
private void 显示在listview()
listView1.Items.Clear();
int 列数 = 数据表.Columns.Count;
for (int i = 0; i < 数据表.Rows.Count; i++)
var 记录 = 数据表.Rows[i];
string 编号 = 记录[字段列表[0]].ToString();
var 列表项 = listView1.Items.Add(编号, 编号);
for (int y = 1; y < 列数; y++)
string 值 = 记录[y].ToString();
列表项.SubItems.Add(值);
private void button1_Click(object sender, EventArgs e)
测试();
以上是关于C#中listview如何分组显示。?的主要内容,如果未能解决你的问题,请参考以下文章
winform c# listview 如何 选中行!急!在线等!
C#在ListView中获取CheckBox选中的值(多选)