我前几天刚做的,你看看比较类: public class ListViewItemComparer : IComparer { private int col; private bool convert; public ListViewItemComparer(int column,bool cvt) { col=column; convert=cvt; } public int Compare(object x, object y) { if(convert) return String.Compare(((ListViewItem)y).SubItems[col].Text, ((ListViewItem)x).SubItems[col].Text); else return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text); } }应用: private int CurrentColumn = -1; //记录上次点击的列号 private bool Convert = false; //记录正逆序信息private void listView_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e) { if(CurrentColumn == e.Column) { //相临两次点击同一列,排序顺序倒置 Convert = !Convert; this.listView.ListViewItemSorter = new ListViewItemComparer(e.Column, Convert); } else { //相临两次点击不同列,记录本次点击的列号 CurrentColumn = e.Column; //正排序 Convert = false; this.listView.ListViewItemSorter = new ListViewItemComparer(e.Column, Convert); } //数据排序 listView.Sort(); }
ListView.Sorting private void CreateMyListView() { // Create a new ListView control. ListView listView1 = new ListView(); listView1.Bounds = new Rectangle(new Point(10,10), new Size(300,200)); // Set the view to show details. listView1.View = View.Details; // Allow the user to edit item text. listView1.LabelEdit = true; // Allow the user to rearrange columns. listView1.AllowColumnReorder = true; // Display check boxes. listView1.CheckBoxes = true; // Select the item and subitems when selection is made. listView1.FullRowSelect = true; // Display grid lines. listView1.GridLines = true; // Sort the items in the list in ascending order. listView1.Sorting = SortOrder.Ascending;
// Create three items and three sets of subitems for each item. ListViewItem item1 = new ListViewItem("item1",0); // Place a check next to the item. item1.Checked = true; item1.SubItems.Add("1"); item1.SubItems.Add("2"); item1.SubItems.Add("3"); ListViewItem item2 = new ListViewItem("item2",1); item2.SubItems.Add("4"); item2.SubItems.Add("5"); item2.SubItems.Add("6"); ListViewItem item3 = new ListViewItem("item3",0); // Place a check next to the item. item3.Checked = true; item3.SubItems.Add("7"); item3.SubItems.Add("8"); item3.SubItems.Add("9"); // Create columns for the items and subitems. listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left); listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left); listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left); listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center); //Add the items to the ListView. listView1.Items.AddRange(new ListViewItem[]{item1,item2,item3}); // Create two ImageList objects. ImageList imageListSmall = new ImageList(); ImageList imageListLarge = new ImageList(); // Initialize the ImageList objects with bitmaps. imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage1.bmp")); imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage2.bmp")); imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage1.bmp")); imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage2.bmp")); //Assign the ImageList objects to the ListView. listView1.LargeImageList = imageListLarge; listView1.SmallImageList = imageListSmall; // Add the ListView to the control collection. this.Controls.Add(listView1); }
public class ListViewItemComparer : IComparer
{
private int col;
private bool convert; public ListViewItemComparer(int column,bool cvt)
{
col=column;
convert=cvt;
}
public int Compare(object x, object y)
{
if(convert)
return String.Compare(((ListViewItem)y).SubItems[col].Text, ((ListViewItem)x).SubItems[col].Text);
else
return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
}
}应用:
private int CurrentColumn = -1; //记录上次点击的列号
private bool Convert = false; //记录正逆序信息private void listView_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e)
{
if(CurrentColumn == e.Column)
{
//相临两次点击同一列,排序顺序倒置
Convert = !Convert;
this.listView.ListViewItemSorter = new ListViewItemComparer(e.Column, Convert);
}
else
{
//相临两次点击不同列,记录本次点击的列号
CurrentColumn = e.Column;
//正排序
Convert = false;
this.listView.ListViewItemSorter = new ListViewItemComparer(e.Column, Convert);
} //数据排序
listView.Sort();
}
{
// Create a new ListView control.
ListView listView1 = new ListView();
listView1.Bounds = new Rectangle(new Point(10,10), new Size(300,200)); // Set the view to show details.
listView1.View = View.Details;
// Allow the user to edit item text.
listView1.LabelEdit = true;
// Allow the user to rearrange columns.
listView1.AllowColumnReorder = true;
// Display check boxes.
listView1.CheckBoxes = true;
// Select the item and subitems when selection is made.
listView1.FullRowSelect = true;
// Display grid lines.
listView1.GridLines = true;
// Sort the items in the list in ascending order.
listView1.Sorting = SortOrder.Ascending;
// Create three items and three sets of subitems for each item.
ListViewItem item1 = new ListViewItem("item1",0);
// Place a check next to the item.
item1.Checked = true;
item1.SubItems.Add("1");
item1.SubItems.Add("2");
item1.SubItems.Add("3");
ListViewItem item2 = new ListViewItem("item2",1);
item2.SubItems.Add("4");
item2.SubItems.Add("5");
item2.SubItems.Add("6");
ListViewItem item3 = new ListViewItem("item3",0);
// Place a check next to the item.
item3.Checked = true;
item3.SubItems.Add("7");
item3.SubItems.Add("8");
item3.SubItems.Add("9"); // Create columns for the items and subitems.
listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left);
listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left);
listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left);
listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center); //Add the items to the ListView.
listView1.Items.AddRange(new ListViewItem[]{item1,item2,item3}); // Create two ImageList objects.
ImageList imageListSmall = new ImageList();
ImageList imageListLarge = new ImageList(); // Initialize the ImageList objects with bitmaps.
imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage1.bmp"));
imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage2.bmp"));
imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage1.bmp"));
imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage2.bmp")); //Assign the ImageList objects to the ListView.
listView1.LargeImageList = imageListLarge;
listView1.SmallImageList = imageListSmall; // Add the ListView to the control collection.
this.Controls.Add(listView1);
}
cnhgj(戏子) ( )我现在用的就是这样的,可是没有解决我现在的问题
回复人: BeyondLove2000(马) ( ) 信誉:100 2003-08-29 13:29:00 得分:0 好象可以,谢谢