C# Listview 에서 칼럼헤드 클릭시 정렬 되게 하는..
C#/Tip :
2009. 8. 7. 12:32
Listview를 디테일로 해서 칼럼을 만들고 이것저것 하다가 칼럼헤드 클릭시에 정렬이 되도록 할때
사용 하면된다.
//리스트뷰 이벤트 중에 칼럼클릭을 추가한다. private void lst_emwar_ColumnClick(object sender, ColumnClickEventArgs e) { if (m_Columnclick == true) lst_emwar.ListViewItemSorter = new ListViewItemComparerASC(e.Column); else lst_emwar.ListViewItemSorter = new ListViewItemComparerDESC(e.Column); m_Columnclick = !m_Columnclick; } /// 소스의 제일 마지막에 추가 (또는 클레스 파일로 추가) class ListViewItemComparer : IComparer { private int col; public ListViewItemComparer() { col = 0; } public ListViewItemComparer(int column) { col = column; } public int Compare(object x, object y) { return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text); } } class ListViewItemComparerASC : IComparer { private int col; public ListViewItemComparerASC() { col = 0; } public ListViewItemComparerASC(int column) { col = column; } public int Compare(object x, object y) { try { // 숫자 비교 if (Convert.ToDecimal(((ListViewItem)x).SubItems[col].Text) > Convert.ToDecimal(((ListViewItem)y).SubItems[col].Text)) { return 1; } else return -1; } catch (Exception) { // 텍스트 비교 return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text); } } } class ListViewItemComparerDESC : IComparer { private int col; public ListViewItemComparerDESC() { col = 0; } public ListViewItemComparerDESC(int column) { col = column; } public int Compare(object x, object y) { try { if (Convert.ToDecimal(((ListViewItem)x).SubItems[col].Text) < Convert.ToDecimal(((ListViewItem)y).SubItems[col].Text)) { return 1; } else return -1; } catch (Exception) { if (String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text) == 1) { return -1; } else return 1; } } }
'C# > Tip' 카테고리의 다른 글
C# richbox에서 버튼누를때 글자색 변경하도록 하는 방법 (0) | 2009.08.08 |
---|---|
C# Access 데이터베이스, 테이블, 칼럼 생성 방법 (0) | 2009.08.07 |
C# 문자열 크기를 바이트크기로 (0) | 2009.08.07 |
C# listview를 선택했는지 확인 후 삭제 (0) | 2009.08.07 |
C# 문자열을 분리하기 (0) | 2009.08.07 |