티스토리 뷰

C#

listview column 클릭 시 정렬하기

갱생쌩유 2012. 7. 5. 15:24

헤더에 using System.Collections; 추가


 

리스트뷰의 정렬을 위한 클래스 정의

 // 리스트뷰의 정렬을 위하여 사용함.
class ListViewItemComparer : IComparer
{

private int col;

public string sort = "asc";

public ListViewItemComparer()
{

col = 0;

}

/// <summary>
/// 컬럼과 정렬 기준(asc, desc)을 사용하여 정렬 함.
/// </summary>
/// <param name="column">몇 번째 컬럼인지를 나타냄.</param>
/// <param name="sort">정렬 방법을 나타냄. Ex) asc, desc</param>
public ListViewItemComparer(int column, string sort)
{

col = column;

this.sort = sort;

}

public int Compare(object x, object y)
{

if (sort == "asc")

return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);

else

return String.Compare(((ListViewItem)y).SubItems[col].Text, ((ListViewItem)x).SubItems[col].Text);

}

}

 


 

이벤트 추가

private void listViewMyCom_ColumnClick(object sender, ColumnClickEventArgs e)
{
//정렬을 위하여 사용 됨.
if (this.listViewMyCom.Sorting == SortOrder.Ascending || listViewMyCom.Sorting == SortOrder.None)
{

this.listViewMyCom.ListViewItemSorter = new ListViewItemComparer(e.Column, "desc");

listViewMyCom.Sorting = SortOrder.Descending;

}

else
{

this.listViewMyCom.ListViewItemSorter = new ListViewItemComparer(e.Column, "asc");

listViewMyCom.Sorting = SortOrder.Ascending;

}

listViewMyCom.Sort();

}

'C#' 카테고리의 다른 글

C# 소켓 서버와 클라이언트를 통한 DB 검색  (0) 2012.07.12
dataGridView에 DB Select만 불러오기  (0) 2012.07.09
ini 파일 설정2  (0) 2012.07.05
String, StringBuilder  (0) 2012.07.05
ini 파일 설정  (0) 2012.07.05
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
글 보관함