2012-09-03 63 views
1

我有2個TreeView控件,用戶選擇TreeView1中的一個節點,然後在TreeView2中選擇一個節點。
問題是,當他選擇另一個TreeView節點時,前一個節點離開焦點,以便用戶不知道選擇了哪個TreeView。同時在不同樹形視圖中選擇2個節點

是否有任何方法來關注2個TreeNodes或更改ForeColor /使所選節點變爲粗體,以便所選節點仍然可見。

+0

[C#的WinForms亮點樹節點的可能重複時樹狀犯規。有焦點](http://stackoverflow.com/questions/10034714/c-sharp-winforms-highlight-treenode-when-treeview-doesnt-have-focus) –

+0

你的意思是通過點擊treeview中的一個節點,一些其他節點被選中在其他樹視圖?! –

回答

3

設置TreeView的HideSelection屬性設置爲false:

獲取或設置所選樹節點是否仍然 強調即使在樹視圖失去焦點的值。

1

您可以有2個字段來跟蹤所有樹視圖的選定節點(使用AfterSelect事件)。喜歡的東西:

private TreeNode selectedNodeA; 
    private TreeNode selectedNodeB; 

    private void treeViewA_AfterSelect(object sender, TreeViewEventArgs e) 
    { 
     //Reset color if was perviously highlighted 
     if (selectedNodeA != null) 
      selectedNodeA.BackColor = Color.White; 

     selectedNodeA = e.Node; 

     //Here you can indicate the node is selected, change background color or set font to 
     // Bold or any other tricks! 
     selectedNodeA.BackColor = Color.LightGray; 

     //Rest of code 
    } 

上面的代碼是對的時候,你需要不同的顏色比默認顏色的WinForms使用(通過設置HideSelection假的斯圖爾特說