2012-09-03 62 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假的斯图尔特说