代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace CH7
{
public partial class CH7_DemoForm004 : Form
{
public CH7_DemoForm004()
{
InitializeComponent();
}
private ListViewColumnSorter lvwColumnSorter = new ListViewColumnSorter();
private void CH4_DemoForm042_Load(object sender, EventArgs e)
{
ListView1.View = View.Details;
ListView1.SmallImageList = ImageList1;
// 将 ListView 数据行排序器指派给 ListView 控件的 ListViewItemSorter 属性。
ListView1.ListViewItemSorter = lvwColumnSorter;
// 宣告并构建 ColumnHeader 对象。
ColumnHeader header1, header2, header3;
header1 = new ColumnHeader();
header2 = new ColumnHeader();
header3 = new ColumnHeader();
// 设定数据行的行首文字、水平对齐、以及宽度。
header1.Text = "文件名称";
header1.TextAlign = HorizontalAlignment.Left;
header1.Width = 280;
// 设定数据行的行首文字、水平对齐、以及宽度。
header2.TextAlign = HorizontalAlignment.Left;
header2.Text = "创建时间";
header2.Width = 200;
// 设定数据行的行首文字、水平对齐、以及宽度。
header3.TextAlign = HorizontalAlignment.Left;
header3.Text = "扩展名";
header3.Width = 80;
// 将数据行行首加入 ListView 控件中。
ListView1.Columns.Add(header1);
ListView1.Columns.Add(header2);
ListView1.Columns.Add(header3);
// 填入 ListView.Items 属性。
// 将目录设定成目前目录的完整路径;也就是,启动这个处理序的目录。
System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo(Environment.CurrentDirectory);
// 从目录中取得所有档案。
System.IO.FileInfo[] files = dirInfo.GetFiles("*.*");
// 将每一个文件名称与完整路径加至 ListView 控件中。
if (files != null)
{
foreach (System.IO.FileInfo file in files)
{
ListViewItem item = new ListViewItem(file.Name);
item.SubItems.Add(file.CreationTime.ToString());
item.SubItems.Add(file.Extension);
// 替清单项目加上图标。
switch (file.Extension)
{
case ".cs":
item.ImageIndex = 0;
break;
case ".resx":
item.ImageIndex = 1;
break;
case ".dll":
item.ImageIndex = 2;
break;
case ".exe":
item.ImageIndex = 3;
break;
case ".txt":
item.ImageIndex = 4;
break;
default:
item.ImageIndex = 5;
break;
}
ListView1.Items.Add(item);
}
}
}
private void ListView1_ColumnClick(object sender, ColumnClickEventArgs e)
{
// 检查被按下的数据行是否就是刚刚被排序过的数据行。
if (e.Column == lvwColumnSorter.SortColumn)
{
// 逆转此数据行的排序顺序。
if (lvwColumnSorter.Order == SortOrder.Ascending)
{
lvwColumnSorter.Order = SortOrder.Descending;
}
else
{
lvwColumnSorter.Order = SortOrder.Ascending;
}
}
else
{
// 设定要排序哪一个数据行,预设采用递增排序。
lvwColumnSorter.SortColumn = e.Column;
lvwColumnSorter.Order = SortOrder.Ascending;
}
// 以上述的排序选项设定来加以排序。
this.ListView1.Sort();
}
private void ListView1_SelectedIndexChanged(object sender, EventArgs e)
{
}
}
}