我有 2 个 TreeView 控件,用户在 TreeView1 中选择一个节点,然后在 TreeView2 中选择一个节点。
问题是,当他选择另一个 TreeView 的节点时,前一个节点会离开焦点,这样用户就不会知道选择了哪个 TreeView。
有什么方法可以将注意力集中在 2 个 TreeNode 上或更改前景色/使所选节点变粗,以便所选节点仍然可见。
将 TreeView 的HideSelection属性设置为 false:
获取或设置一个值,该值指示即使在树视图失去焦点时,选定的树节点是否仍保持突出显示。
您可以有 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
为 Stuart 所说的 false 。