【发布时间】:2009-01-19 00:04:29
【问题描述】:
我已更改 Treeview.HideSelection = false; 但是如何确保在失去焦点时所选项目保持原来的所选颜色?
编辑:
我在一个包含流程事件列表的表单上有一个列表视图。在同一表单上的 Treeview 旁边是用户完成的一系列选择,用于对列表视图中的事件进行分类。但是,当用户在其中一个分类控件上进行选择时,蓝色突出显示的选定 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);
}
}
【问题讨论】:
-
您是在谈论对整个应用程序的关注,还是仅针对特定领域?此外,该项目应该保持选中状态,还是应该取消选择自身?
-
我怀疑您正在尝试解决其他问题,而弄乱选择颜色是您解决问题的想法。我认为这是个坏主意。而是询问您的原始问题。肯定有更好的解决方案。