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 |


