我改变了 Treeview.HideSelection = false; 但是,我如何确保在失去焦点时所选项目保持原始所选颜色?
编辑:
我在一个包含流程事件列表的表单上有一个 ListView 。在同一个表单上的 Treeview 旁边是一系列选择,用户完成这些选择以对 ListView 中的事件进行分类。但是,当用户在其中一个分类控件上进行选择时,蓝色突出显示的所选 Treeview 项目变为灰色。我希望找到定义此颜色的属性,使其成为相同的蓝色。
任何建议。
更新:
public partial class myTreeView : TreeView
{
TreeNode tn = null;
public myTreeView()
{
InitializeComponent();
}
protected override void OnAfterSelect(TreeViewEventArgs e)
{
if (tn != null)
{
tn.BackColor = this.BackColor;
tn.ForeColor = this.ForeColor;
}
tn = e.Node;
base.OnAfterSelect(e);
}
protected override void OnBeforeSelect(TreeViewCancelEventArgs e)
{
e.Node.BackColor = Color.Green;
e.Node.ForeColor = Color.White;
base.OnBeforeSelect(e);
}
protected override void OnGotFocus(System.EventArgs e)
{
base.OnGotFocus(e);
}
protected override void OnLostFocus(System.EventArgs e)
{
if (tn != null)
{
tn.BackColor = Color.Green;
tn.ForeColor = Color.White;
}
// tn.BackColor = Color.Red;
base.OnLostFocus(e);
}
}
最佳答案
将 ListView.HideSelection
设置为 true 意味着当失去焦点时,它将隐藏选择。通过将 HideSelection
设置为 false,所选项目仍将有颜色指示器显示哪个项目被选中。
关于C# 如何确保所选节点在失去焦点时保持突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/456174/