VB의 TreeView 컨트롤에서 노드 확장 문제에 대해
각 TreeNode에는 다른 TreeNode 개체의 컬렉션이 포함될 수 있으므로 컬렉션을 반복할 때 트리 구조에서 현재 위치를 확인하기 어려울 수 있습니다. PathSeparator 문자열 값을 사용하여 TreeNode.FullPath 문자열을 구문 분석하여 TreeNode 레이블이 시작하고 끝나는 위치를 결정할 수 있습니다.
ImageList 속성에 ImageList를 할당한 다음 ImageList에서 이미지의 인덱스 값을 참조하여 이미지를 할당하여 트리 노드 옆에 이미지를 표시할 수 있습니다. 다음 속성을 사용하여 이미지를 할당합니다.
ImageIndex 속성을 트리 노드가 선택되지 않았을 때 표시되는 이미지의 인덱스 값으로 설정합니다.
SelectedImageIndex 속성을 트리 노드 선택 시 표시할 이미지의 인덱스 값으로 설정합니다.
ImageIndex 및 SelectedImageIndex 속성 값이 참조하는 이미지는 Nodes 컬렉션에 할당된 모든 트리 노드가 표시하는 기본 이미지입니다. 각 트리 노드는 TreeNode.ImageIndex 및 TreeNode.SelectedImageIndex 속성을 설정하여 기본 이미지를 재정의할 수 있습니다.
트리 노드를 확장하여 다음 수준의 하위 트리 노드를 표시할 수 있습니다. 사용자는 TreeNode 옆에 표시될 때 더하기(+) 단추를 클릭하거나 TreeNode.Expand 메서드를 호출하여 TreeNode를 확장할 수 있습니다. Nodes 컬렉션의 모든 하위 트리 노드 수준을 확장하려면 ExpandAll 메서드를 호출합니다. 자식 TreeNode 수준을 축소하려면 TreeNode.Collapse 메서드를 호출하거나 TreeNode 옆에 마이너스(-) 버튼이 나타날 때 누르십시오. TreeNode.Toggle 메서드를 호출하여 확장 상태와 축소 상태 간에 전환할 수도 있습니다.
트리 노드는 선택적으로 확인란을 표시할 수 있습니다. 확인란을 표시하려면 TreeView의 CheckBoxes 속성을 true로 설정합니다. 선택한 트리 노드의 경우 Checked 속성이 true로 설정됩니다.
참고
BeforeCheck 또는 AfterCheck 이벤트 내에서 TreeNode.Checked 속성을 설정하면 이벤트가 여러 번 발생하여 예기치 않은 동작이 발생할 수 있습니다. 예를 들어, 사용자가 각 노드를 하나씩 확장하고 선택할 필요가 없도록 하위 노드를 재귀적으로 업데이트할 때 이벤트 핸들러에서 Checked 속성을 설정할 수 있습니다. TreeViewEventArgs의 Action 속성이 TreeViewAction.Unknown으로 설정되지 않은 경우 이벤트가 여러 번 발생하지 않도록 하려면 재귀 코드만 실행하도록 이벤트 처리기에 대한 논리를 추가해야 합니다. 이를 수행하는 방법에 대한 예제는 AfterCheck 또는 BeforeCheck 이벤트에 대한 예제 섹션을 참조하세요.
일부 표시 및 스타일 속성을 설정하여 TreeView 컨트롤의 모양을 변경할 수 있습니다. ShowPlusMinus가 true로 설정되면 확장 가능하거나 축소된 TreeNode 각각 옆에 더하기 또는 빼기 버튼이 표시됩니다. ShowRootLines 속성을 true로 설정하면 TreeView는 모든 루트 트리 노드를 연결하는 선을 표시합니다. ShowLines 속성을 true로 설정하면 하위 트리 노드와 해당 루트 노드 사이의 선을 표시할 수 있습니다. HotTracking 속성을 true로 설정하면 마우스 포인터가 트리 노드 위로 이동할 때 트리 노드 레이블의 모양이 변경됩니다. 핫 트레이싱이 활성화된 경우 트리 노드 레이블은 하이퍼링크 모양을 갖습니다.
TreeView 컨트롤의 모양을 완전히 사용자 정의할 수도 있습니다. 이렇게 하려면 DrawMode 속성을 TreeViewDrawMode.Normal 이외의 값으로 설정하고 DrawNode 이벤트를 처리합니다.
참고
런타임에 CheckBoxes, Scrollable, ImageIndex 및 SelectedImageIndex 속성을 설정하면 TreeView 핸들(Control.RecreateHandle 참조)이 다시 생성되어 컨트롤의 모양이 업데이트됩니다. . 그러면 선택한 TreeNode를 제외한 모든 트리 노드가 축소됩니다.
다음 코드 예제에서는 TreeView 컨트롤을 사용하는 방법을 보여줍니다.
개인 하위 초기화TreeView()
treeView1.BeginUpdate()
treeView1.Nodes.Add("Parent")
treeView1. Nodes(0).Nodes.Add("하위 1")
treeView1.Nodes(0).Nodes.Add("하위 2")
treeView1.Nodes(0) .Nodes(1).Nodes.Add("손자")
treeView1.Nodes(0).Nodes(1).Nodes(0).Nodes.Add("큰 손자")
treeView1.EndUpdate()
Sub 종료
MSDN에서