2016-06-27 2 views
0

TreeView 노드에 보조 식별자를 추가하는 방법이 있습니까? 현재 키 값에 "CategoryID ="및 "RecipeID ="를 사용하여 Node.Name.ToString.Split("=")(0) = "RecipeID" 또는 "CategoryID"을 사용하여 노드에있는 컨텍스트 메뉴 및 기능을 확인합니다. 예를 들어, "RecipeID ="키 컨텍스트 메뉴 A를하세요 "카테고리 ID ="키 컨텍스트 메뉴 B를 얻을VB.Net TreeView 보조 식별자

tvwMain.Nodes.Add("CategoryID=" + row.Item("pkCategoryID").ToString, row.Item("CategoryName").ToString) 

tvwMain.Nodes.Add("RecipeID=" + row.Item("pkRecipeID").ToString, row.Item("RecipeName").ToString) 

pkCategoryID 및 pkRecipeID은 보장 데이터베이스 두 개인 키이다 그 키는 고유합니다.

하지만 기능을 결정하는 데 필요한 하나의 수정 자 (true 및 false 값)가 있습니다. 나는 키의 말에 그것을 추가하는 시도, 그래서 그 가치 If Node.Name.ToString.Split("=")(2) = "true"을 확인할 수 있지만 row.Item("CategoryID").ToString

답변

1

당신은 노드에 대한 추가 정보를 저장하기 위해 TreeNodeTag 속성을 사용할 수있는 I가 후 와일드 카드를 사용하지 못할 tvwMain.Nodes.Find("CategoryID=" + row.Item("CategoryID").ToString, True)를 사용하는 경우 . Tag은 유형 또는 객체를 저장할 수 있습니다. 이 예에서는 단지 FormTreeview가 하나 개 할당의 태그 및 ContextMenuStrip을 설정하는 방법은

Public Class Form1 

    Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown 

     With Me.TreeView1 
      With .Nodes.Add("1", "Root") 
       .Nodes.Add("2", "Foo").Tag = True 
       .Nodes.Add("3", "Bar").Tag = False 
       .Nodes.Add("4", "Baz").Tag = True 
       .Nodes.Add("5", "Wup").Tag = New List(Of String) From {"x", "y", "z"} 
      End With 
     End With 

    End Sub 

    Private Sub TreeView1_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles TreeView1.AfterSelect 
     If TypeName(e.Node.Tag) = "Boolean" Then 
      MessageBox.Show("It is " & Convert.ToString(e.Node.Tag)) 
     End If 
    End Sub 

End Class 
+0

있습니까? EDIT * 그냥 내 자신의 질문에 대답했다. 예, .Tag = x.ContextMenuStrip = y – Alex

+1

'MouseUp' 이벤트 잡기에 대한 아이디어를 확인하여 관련'ContextMenuStrip'을 가져올 수 있습니다. https://support.microsoft.com/en-us/kb/811399 –