VB에서 트리 보기 및 목록 보기 컨트롤을 사용하는 방법은 무엇입니까?
TreeView 컨트롤 사용
TreeView
TreeView 컨트롤은 조직 트리, 인덱스 항목, 파일 및 디스크의 디렉터리와 같은 계층적 데이터를 표시하는 데 사용할 수 있습니다. 기다리다.
그림 2.40 일반적인 TreeView
가능한 용도
사용자가 조작할 수 있는 조직 트리를 만듭니다.
최소 2개 이상의 레벨을 표시하는 데이터베이스 트리를 만듭니다.
노드 개체 속성 설정
"트리"는 계단식 "노드" 가지로 구성됩니다. 각 노드에는 일반적으로 이미지(이미지 속성으로 설정)와 레이블(설정)이 포함됩니다. Text 속성을 사용하여 설정). 노드의 이미지는 TreeView 컨트롤과 연결된 ImageList 컨트롤에 의해 제공됩니다. ImageList 컨트롤을 다른 컨트롤과 함께 사용하는 방법에 대한 자세한 내용은 "ImageList 컨트롤 사용"을 참조하십시오.
노드는 자식 노드, 즉 그 노드에서 시작하는 노드가 있는지 여부에 따라 확장되거나 접힐 수 있습니다. 최상위 수준에는 "루트" 노드가 있으며, 각 노드에는 원하는 수의 하위 노드가 있을 수 있습니다. 총 노드 수에는 제한이 없습니다(머신 리소스에 의해 제한되지 않는 한). 그림 2.41은 두 개의 루트 노드가 있는 트리를 보여줍니다. 그 중 "Root 1"에는 3개의 자식 노드가 있고, "Child 3" 자체에는 1개의 자식 노드가 있습니다. "루트 2"에는 " " 기호로 표시된 하위 노드가 있지만 확장되지는 않습니다.
그림 2.41 루트 및 하위 노드
트리의 각 노드는 실제로 Nodes 컬렉션에 속하는 프로그래밍 가능한 Node 객체입니다. 다른 컬렉션과 마찬가지로 컬렉션의 각 멤버에는 해당 노드의 다른 속성에 대한 액세스를 제공하는 고유한 Index 및 Key 속성이 있습니다. 예를 들어, 다음 코드는 인덱스("7")를 사용하여 특정 노드의 Image 및 Text 속성을 설정합니다.
tvwMyTree.Nodes(7).Image = "closed"
tvwMyTree.Nodes(7).Text = "IEEE"
그러나 "7 ID"와 같은 고유 키가 노드에 할당된 경우 위 코드는 다음과 같이 다시 작성될 수 있습니다.
tvwMyTree.Nodes("7 ID").Image = "닫음"
tvwMyTree.Nodes("7 ID").Text = "IEEE"
노드 간의 관계 및 관계 노드에 대한 참조
각 노드는 다른 노드와의 관계에 따라 하위 노드 또는 상위 노드가 될 수 있습니다. Node 개체에는 하위 노드 또는 상위 노드에 대한 다양한 정보를 반환하는 데 사용할 수 있는 몇 가지 속성이 있습니다. 예를 들어 다음 코드는 Children 속성을 사용하여 노드의 자식 노드 수를 반환합니다.
MsgBox tvwMyTree.Nodes(10).Children
그러나 다른 속성은 정보를 반환하지 않지만 다른 노드 객체에 대한 참조를 반환한다는 점에서 Children 속성과 다릅니다. 예를 들어 Parent 속성은 특정 노드의 상위 노드에 대한 참조를 반환합니다(노드가 루트 노드가 아닌 경우). 이 참조를 사용하면 Node 개체에서 사용할 수 있는 모든 메서드를 호출하거나 속성을 설정하여 상위 노드를 관리할 수 있습니다.
예를 들어, 다음 코드는 상위 노드의 텍스트 및 인덱스 속성을 반환합니다:
MsgBox tvwMyTree.Nodes(10).Parent.Text
MsgBox tvwMyTree.Nodes(10). Parent.Index
Set 문을 사용하여 Node 유형 개체를 처리하고 다른 Node 개체에 대한 참조를 관리하는 방법에 대한 팁입니다. 예를 들어, 다음 코드는 Node 개체 변수를 Parent 속성에서 반환된 참조로 설정합니다. 그런 다음 객체 변수를 사용하여 관련 노드의 속성을 반환합니다:
Dim tempNode As Node '객체 변수를 선언합니다.
'객체 변수를 반환된 참조로 설정합니다.
Set tempNode = tvwMyTree.Nodes(10).Parent
MsgBox tempNode.Text '부모 노드의 텍스트를 반환합니다.
MsgBox tempNode.Index '부모 노드의 인덱스를 반환합니다.
노드 컬렉션에 노드 개체 추가
트리에 노드를 추가하려면 Add 메서드(노드 컬렉션)를 사용할 수 있습니다. 이 방법에는 노드가 추가되는 위치를 결정하는 상대 및 관계라는 두 개의 매개 변수가 포함되어 있습니다. 첫 번째 매개변수 상대는 노드 이름을 지정하고, 두 번째 매개변수 관계는 새로 추가된 노드와 상대라는 노드 사이의 관계를 지정합니다.
예를 들어 다음 코드는 "11 node"라는 노드를 추가하고 "7 node"라는 노드의 하위 노드로 만듭니다. 내장 상수 tvwChild는 새 노드가 이전 매개변수로 지정된 노드의 하위 노드임을 나타냅니다. 세 번째 매개변수는 새 노드의 Key 속성을 설정합니다.
tvwMyTree.Nodes.Add "7 node", tvwChild, "11 node"
다른 가능한 관계는 다음과 같습니다:
상수 값 설명
tvwLast 1 이 노드는 상대 노드와 동일한 수준의 모든 노드 뒤에 배치됩니다.
tvwNext 2 이 노드는 상대라는 노드 뒤에 배치됩니다.
tvwPrevious 3 이 노드는 상대라는 노드 앞에 배치됩니다.
tvwChild 4 이 노드는 상대라는 노드의 하위 노드가 됩니다.
예를 들어 노드가 3개 있다고 가정하고 두 번째 노드와 세 번째 노드 사이에 네 번째 노드를 배치하려는 경우 코드는 다음과 같습니다.
'네 번째 노드를 가정하면 두 노드의 키 값은 "2노드"입니다.
tvwMyTree.Nodes.Add "2 node", tvwNext
Add 메소드의 다른 매개변수는 키, 텍스트 및 이미지입니다. 이러한 매개 변수를 사용하면 Node 개체를 생성할 때 Key, Text 및 Image 속성을 해당 개체에 할당할 수 있습니다.
자세히 Nodes 컬렉션의 Add 메서드에 대한 자세한 내용은 인덱스 검색에서 "Add 메서드"를 입력하고 Add 메서드(노드 컬렉션)를 클릭합니다. "Add 메서드"를 참조하세요.
노드를 추가하는 두 번째 방법은 Node 유형의 개체 변수를 선언한 다음 Add 메서드와 함께 Set 문을 사용하는 것입니다. Set 문은 개체 변수를 새 노드로 설정합니다.
그런 다음 이 개체 변수를 사용하여 다음과 같이 노드의 속성을 설정할 수 있습니다.
Dim nodX As Node
Set nodX = tvwMyTree.Nodes.Add("10 node", tvwChild)
nodX.Key = "11노드"
nodX.Text = "IEEE"
nodX.Image = "닫힘"
팁: 코드를 더 읽기 쉽고 디버깅하기 쉽게 만들려면 Add와 함께 Set 문을 사용하세요. 그러나 Add 메서드와 해당 매개 변수를 사용하여 노드를 추가하면 코드가 더 빨라집니다.
Listview
ListView 컨트롤은 네 가지 다른 보기를 사용하여 항목을 표시할 수 있습니다. 이 컨트롤을 사용하면 항목을 열 머리글이 있거나 없는 열로 구성하고 관련 아이콘과 텍스트를 표시할 수 있습니다.
구문
ListView
설명
ListView 컨트롤을 사용하여 ListItem 개체라고 하는 목록 항목을 다음 네 가지 다른 개체로 구성할 수 있습니다. 보기 중:
큰(표준) 아이콘
작은 아이콘
목록
보고서
보기 속성 컨트롤이 목록의 항목을 표시하는 데 사용하는 보기를 결정합니다. 또한 LabelWrap 속성을 사용하여 목록의 항목과 연결된 레이블을 래핑할 수 있는지 여부를 제어할 수 있습니다. 또한 목록의 항목이 정렬되는 방식과 선택한 항목의 모양을 관리할 수 있습니다.
ListView 컨트롤에는 ListItem 및 ColumnHeader 개체가 포함되어 있습니다. ListItem 개체는 다음과 같이 ListView 컨트롤에 있는 항목의 다양한 속성을 정의합니다.
항목에 대한 간략한 설명입니다.
항목과 함께 나타나는 ImageList 컨트롤에서 제공하는 아이콘입니다.
하위 항목이라고 하는 추가 텍스트 조각은 보고서 보기에 나타나는 ListItem 개체와 연결됩니다.
HideColumnHeaders 속성을 사용하여 ListView 컨트롤에 열 헤더를 표시할지 여부를 결정할 수 있습니다. 열 헤더는 디자인 타임이나 런타임에 추가될 수 있습니다. 디자인 타임에 ListView 컨트롤 속성 대화 상자의 열 머리글 탭을 사용하여 열 머리글을 추가합니다. 런타임에 Add 메서드를 사용하여 ColumnHeaders 컬렉션에 ColumnHeader 개체를 추가합니다.
릴리스 노트 ListView 컨트롤은 Mscomctl.ocx 파일에 있는 ActiveX 컨트롤 집합의 일부입니다. 응용 프로그램에서 ListView 컨트롤을 사용하려면 Mscomctl.ocx 파일을 프로젝트에 추가해야 합니다. 응용 프로그램을 배포할 때 Mscomctl.ocx 파일을 사용자의 Microsoft Windows System 또는 System32 디렉터리에 설치하십시오. Visual Basic 프로젝트에 ActiveX 컨트롤을 추가하는 방법에 대한 자세한 내용은 Visual Basic 프로그래머 가이드를 참조하세요.