2012-06-11 37 views
0

我已經有了一個樹視圖的問題,以及如何索引節點的作品。在我的程序中,我有一個可以包含任意數量用戶的數據庫。每個用戶由回車分隔(即每行一個用戶)。我正在創建一個列出數據庫中所有用戶的treeview對象。如果用戶點擊特定的節點,我如何引用該節點/處理它被選中,因爲我是從數據庫動態創建節點的?C#Treeview索引

StreamReader getMembers = new StreamReader(@"[data]\db\users.db"); 
     List<string> mems = new List<string>(); 
     members.Nodes.Add("Members"); 
     while (!getMembers.EndOfStream) 
     { 
      mems.Add(getMembers.ReadLine()); 
     } 
     foreach (string o in mems) 
     { 
      TreeNode n = new TreeNode(o); 
      members.Nodes[0].Nodes.Add(n); 
     } 

數據庫&計劃:

enter image description here

回答

1

如果你試圖讓被選中,你可以通過TreeView.SelectedNode財產......(HTTP實現了樹的節點:// MSDN。 microsoft.com/en-us/library/system.windows.forms.treeview.selectednode.aspx)

如果要處理treenode選擇的事件註冊TreeView.AfterSelect事件(http://msdn.microsoft.com/EN-U S /庫/ system.windows.forms.treeview.afterselect)

例如:

private void TreeView1_AfterSelect(System.Object sender, 
    System.Windows.Forms.TreeViewEventArgs e) 
{ 

    // Vary the response depending on which TreeViewAction 
    // triggered the event. 
    switch((e.Action)) 
    { 
     case TreeViewAction.ByKeyboard: 
      MessageBox.Show("You like the keyboard!"); 
      break; 
     case TreeViewAction.ByMouse: 
      MessageBox.Show("You like the mouse!"); 
      break; 
    } 
} 
0

假設你使用的是標準窗體TreeView,這聽起來像你想訂閱的TreeView.AfterSelect事件。

// Handle the After_Select event. 
private void TreeView1_AfterSelect(System.Object sender, 
    System.Windows.Forms.TreeViewEventArgs e) 
{ 
    // If (TreeView1.SelectedNode... 
}