vba listview 예제
ListView 컨트롤의 확인란 속성을 True로 설정하여 VBA 코드에서 ListView 항목에 대한 확인란을 쉽게 활성화할 수 있지만 첫 번째 열의 항목 레이블에만 기본 확인란 컨트롤이 추가됩니다. 처음에 표시되지 않는 한 열에만 확인란이 필요한 경우 간단한 트릭을 사용하여 항목 레이블이 있는 열을 필요한 위치로 이동할 수 있습니다. 위의 UserForm에서 ListView 컨트롤이 있는 스크린샷은 다음과 같은 초기화 코드로 양식을 시작한 후 캡처되었으며, 이는 Excel VBA에서 ListView 하위 항목을 추가하는 방법의 예입니다. 정수) `listview 취소 = i에 대한 트루 엔드 하위에서 편집을 방지 = 1 mcolRecords.Count `목록 보기 집합 li = 를 채웁니다 . 목록항목.추가(, , mcolRecords(i). 이름) li. 하위 항목(1) = mcolRecords(i). 부서 리. 하위 항목(2) = mcolRecords(i). 현재 다음 i “listview하위 항목에 확인란 추가”는 ListView 컨트롤과 관련된 인기 있는 인터넷 검색 쿼리입니다. 일반적으로 사람들은 보고서 모드에서 ListView를 사용하고 여러 ListView 열에 확인란을 추가하려고 할 때 이 문제에 대한 해결책을 찾고 있습니다. UserForm_Activate에서 컬렉션을 반복하고 있는 경우 listview 요소를 한 번에 하나의 셀로 할당 http://www.vbforums.com/showthread.php?562763-How-to-add-checkboxes-in-subitem-of-listview합니다. IComparer 인터페이스에서 상속됩니다.
또한 이 예제에서는 CaseInsenstiveComparer 클래스의 비교 메서드를 사용하여 항목의 실제 비교를 수행합니다. 이 비교 방법은 대/소문자를 구분하지 않습니다(“Apple”은 “사과”와 동일한 것으로 간주됩니다). 또한 이 예제의 모든 열은 “텍스트” 방식으로 정렬됩니다. public int 비교(개체 x, 개체 y) { int 비교결과; 리스트뷰항목 리스트뷰X, 리스트뷰Y; ListViewItem 개체 listviewX = (ListViewItem)x에 비교할 객체를 캐스팅합니다. 목록보기Y = (리스트뷰항목)y; 단순 문자열 비교결과 = String.Compare (listviewX.SubItems[ColumnToSort]. 텍스트, listviewY.하위 항목[열토정렬]. 텍스트 ( (OrderOfSort == SortOrder.Ascending) { // 오름차순 정렬이 선택된 경우 개체 비교를 기준으로 올바른 반환 값을 계산합니다. 내림차순 정렬이 선택되고, 비교 작업 반환의 음수 결과를 반환합니다(-compareResult); } {// 반환 `0` 반환 동일한 반환 0; } ListView 컨트롤로 작업하는 경우 특정 열을 기반으로 해당 내용을 정렬할 수 있습니다. 이러한 종류의 기능의 예는 하드 디스크에서 폴더의 내용을 볼 때 Windows 탐색기 프로그램에서 발생합니다.
세부 정보 보기에서 Windows 탐색기는 해당 폴더의 파일에 대한 정보를 표시합니다. 예를 들어 파일 이름, 파일 크기, 파일 형식 및 파일이 수정된 날짜가 표시됩니다. 열 머리글 중 하나를 클릭하면 해당 열을 기준으로 목록이 오름차순으로 정렬됩니다. 동일한 열 헤더를 다시 클릭하면 열이 내림차순으로 정렬됩니다. 이 문서에서는 ListView 컨트롤을 DataSet에 로드된 데이터로 채우는 방법을 보여 주며, 이 문서에서는 DataSet을 그리드 컨트롤에 바인딩하여 쿼리 의 출력을 표시할 수 있지만 컨트롤의 데이터 바인딩이 항상 데이터에 액세스하는 이상적인 방법은 아닙니다(DataBinding에 문제가 발생할 수 있음). DataSet은 행을 변경해야 하는 경우 클라이언트 시스템 메모리에서 전체 결과 집합의 복사본을 유지 관리합니다. 바인딩된 그리드와 DataSet을 사용하는 대신 세부 정보 모드로 설정된 뷰와 함께 listview 컨트롤을 사용하여 DataSet의 데이터로 채울 수 있습니다.