C#

(C#) ListView 실행시간에 마우스로 열 순서 변경하기

코딩ABC 2023. 6. 22. 22:09
반응형

ListView의 AllowColumnReorder 속성을 이용하면 실행시간에  리스트뷰의 머리(head) 부분을 마우스로 끌어서 열(column) 순서를 변경할 수 있습니다.

listView1.AllowColumnReorder = true;

 

ListView: AllowColumnReorder

 

열을 변경하더라도 인덱스는 변경되지 않습니다.

 

C#의 ListView 컨트롤에서 열 순서를 변경하고 변경된 열 순서의 헤더를 가져오려면 다음과 같은 방법을 사용할 수 있습니다.

// ListView 컨트롤에서 변경된 열 순서의 헤더 가져오기
string[] GetColumnHeaders(ListView listView)
{
    string[] headers = new string[listView.Columns.Count];

    // 열 순서대로 헤더를 가져옵니다.
    for (int i = 0; i < listView.Columns.Count; i++)
    {
        int displayIndex = listView.Columns[i].DisplayIndex;
        headers[displayIndex] = listView.Columns[i].Text;
     }

     return headers;
}

위의 코드에서 GetColumnHeaders 메서드는 ListView 컨트롤을 인자로 받고, 변경된 열 순서의 헤더를 문자열 배열로 반환합니다. 각 열의 DisplayIndex 속성을 사용하여 열의 순서를 가져올 수 있습니다. 반환된 문자열 배열은 변경된 열 순서대로 헤더를 포함하고 있습니다.

다음은 이 메서드를 사용하는 예시입니다.

// ListView1은 ListView 컨트롤의 인스턴스입니다.
string[] headers = GetColumnHeaders(listView1);

// 변경된 열 순서의 헤더를 출력합니다.
foreach (string header in headers)
{
    Console.WriteLine(header);
}

 

 

ListView: AllowColumnReorder

 

반응형