2013-01-21 3 views
0

treeview를 사용하여 db에 데이터를 표시하고 있습니다. 모든 데이터에는 자체 코드와 상위 코드가 있습니다 (레벨이 아님). 상위 코드가 1 단계 (1 단계의 상위) C에서 확장 된 특정 treenode를 선택하는 방법 #

  • 인 데이터 찾기 : 부모 코드가 널 찾을 데이터 (루트 노드)
  • 단계 2 : 내 나타내는 알고리즘의 단계는이

    • 단계 1과 같다 단계 3 : 트리 뷰 1,2-을 추가 표시
    • 4 단계 : 클릭 노드는 어떤 상위 코드 선택된 노드 데이터를 찾을 때
    • 5 단계 : 선택된 code`s 자식 노드로 4 단계를 추가

    노드 1

    └ 노드 2 - 아이콘을 확장 클릭

    └ 노드 3

    └ 노드 4 - 선택된 노드

    이 경우, 나는 단지 선택된 노드 (노드 4)를 확인할 수 있습니다. 따라서 이벤트를 클릭하거나 확장/축소 할 때 자식 노드 코드를 추가하면 코드는 노드 2가 아닌 선택된 노드 (노드 4)에서 작동합니다.

    여기는 click 이벤트를 사용하는 이유입니다.

    어떤 노드의 확장 아이콘을 클릭했는지 확인하고 싶습니다. 이 예제에서 얻고 자하는 노드는 node2입니다.

    무식하지만 단순한 방법은 ... 노드의 상태를 모두 저장하고 이후에 확장하기 전에 비교합니다. 이 방법은 노드 수가 많을 때 너무 오래 걸릴 것입니다.

    노드 2을 선택할 수있는 다른 간단한 방법이있는 경우 어떻게 찾을 수 있는지 알고 싶습니다.

    불쌍한 설명에 사과드립니다.

  • 답변

    2

    OnBeforeExpand 트리 뷰 이벤트를 사용할 수 있습니다. 이 이벤트에는 노드 속성에서 확장 할 노드를 전달하는 TreeViewCancelEventArgs 인수가 있습니다.

    +0

    오 ... 답변은 ** EventArgs **에 있습니다. 감사 – Temp