시샵 C# ListView 마지막에 추가한 데이터에 스크롤 위치시키는 방법 |
환경: Visual Studio 2013 |
C# ListView 에서 데이터를 계속 추가하다 보면 스크롤이 생기고 최근에 추가한 데이터는 뒤로 밀려서 볼 수가 없게 됩니다. 최신 데이터를 제일 앞으로 배치 시킨다면 스크롤이 생겨도 이전 데이터들이 밀려서 내려가기 때문에 상관이 없습니다. 만약 리스트의 끝에 계속해서 데이터를 추가해 나갈 때 최신 데이터를 보고 싶으면 어떻게 해야 할까요?
▼ 먼저 string 배열을 이용해서 데이터들을 ListView 에 추가합니다. 이렇게 계속해서 추가하다 보면 최근 데이터는 리스트의 끝에 추가되기 때문에 스크롤을 내려야 볼 수 있습니다.
// 실시간 데이터 표시 하기 string[] strData = { e.sRealKey, // 종목코드 axKHOpenAPI1.GetCommRealData(e.sRealType, 10).Trim(), // 현재가 axKHOpenAPI1.GetCommRealData(e.sRealType, 12).Trim(), // 등락율 axKHOpenAPI1.GetCommRealData(e.sRealType, 16).Trim(), // 시가 axKHOpenAPI1.GetCommRealData(e.sRealType, 17).Trim(), // 고가 axKHOpenAPI1.GetCommRealData(e.sRealType, 18).Trim() // 저가 }; var listViewItem = new ListViewItem(strData); listView1.Items.Add(listViewItem);
▼ 가장 최근에 추가한 데이터들을 보려면 스크롤이 ListView 의 제일 하단에 내려가 있어야 합니다. 그 역할을 할 수 있는 것이 EnsureVisible 함수 입니다. EnsureVisible 함수는 필요한 경우 컨트롤의 콘텐츠를 스크롤하여 지정한 항목을 보여 주고 싶을 때 사용합니다. 인수 값으로 ListView 의 개수를 넘기면 마지막 값을 보여 주게 되겠죠.
// 항상 마지막 아이템이 선택되도록 설정한다. listView1.EnsureVisible(listView1.Items.Count - 1);
▼ 만약 EnsureVisible 함수가 적용되지 않는다면 ListView.TopItem 속성을 사용해 보세요. 이 속성은 제일 먼저 컨트롤에 표시할 항목을 세팅할 수 있습니다. 직접 표시할 Item 을 속성값으로 세팅하는 것입니다. listView1.Items[listView1.Items.Count - 1]; 는 마지막에 추가한 데이터를 나타냅니다.
// 항상 마지막 아이템이 선택되도록 설정한다. listView1.TopItem = listView1.Items[listView1.Items.Count - 1];
그림처럼 마지막에 추가한 Item 객체를 TopItem 속성으로 입력하게 되면 최근에 추가한 데이터를 화면에서 볼 수 있습니다.
'기타 언어 > C# & MFC' 카테고리의 다른 글
[C#] 폼에서 패널컨트롤(Panel)이용해서 멀티 페이지 구현하기 (0) | 2020.01.14 |
---|---|
[C#] SQLite 데이터베이스 접속과 데이터 가져와서 표현하는 방법 (2) | 2020.01.09 |
[C#] ListView 컨트롤에서 행 선택 시 열 전체가 선택된 것처럼 보이게 하는 방법 (3) | 2020.01.02 |
프로그램 개발을 위한 무료 비주얼 스튜디오 2015 설치하기 (0) | 2019.06.19 |
시샵 C# using 네임스페이스 자동으로 추가하는 방법 (0) | 2019.05.22 |
C 언어 무료 컴파일 도구 Dev C++ 새 프로젝트 만들어서 실행하기 (0) | 2019.03.13 |
C 언어 무료 컴파일 도구 Dev C++ 사용하는 방법 (1) | 2019.03.12 |
C# 시샵 프로세스 종료하는 방법 (3) | 2019.01.08 |