ListView.Demo04.多列样式.CH7

代码
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)
{

}
}
}

 

posted @ 2010-12-11 12:09  彭成刚  阅读(353)  评论(0编辑  收藏  举报