我更改了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);
}
}
答案 0 :(得分:11)
将ListView.HideSelection
设置为true意味着当焦点丢失时,它将隐藏选择。通过将HideSelection
设置为false,所选项目仍会显示颜色指示符,以显示选择了哪个项目。
答案 1 :(得分:1)
一般情况下,你没有。颜色的变化是指示哪个控件具有焦点的视觉提示之一。不要因为摆脱它而混淆客户。
如果你想破坏惯例,那么你可以让你的控件所有者绘制,然后你可以绘制你想要的任何颜色的项目。
在您的情况下,另一个选项是使用下拉组合框而不是列表框。然后,无论控件是否具有焦点,当前选择总是清晰的。或者,您可以考虑使用网格,其中每个事件都具有单独给出的所有设置,然后“选择”根本不重要。
答案 2 :(得分:0)
如果我这样做,我会在ListView旁边添加一个额外的标签,在选择的分类控件之上,这将指示选择了哪个过程事件。您还可以使用所述标签添加有关该事件的额外详细信息(如果有)。
通过这种方式,您坚持使用标准的UI惯例和,使用户可以更清楚地了解当前的选择。
答案 3 :(得分:0)
我使用这段代码;它对我有用。
设计:Mytreeview.HideSelection = True
您将手动突出显示失去焦点的选定节点。
Private Sub MyTreeview_Leave(sender As Object, e As EventArgs) Handles MyTreeview.Leave
MyTreeview.SelectedNode.BackColor = Color.LemonChiffon
End Sub
Private Sub MyTreeview_BeforeSelect(sender As Object, e As TreeViewCancelEventArgs) Handles MyTreeview.BeforeSelect
If MyTreeview.SelectedNode IsNot Nothing Then
MyTreeview.SelectedNode.BackColor = Color.White
End Sub
答案 4 :(得分:-2)
我喜欢HideSelection = false;回答,因为:
很容易
我有一个搜索功能,循环遍历节点并通过将其背景更改为黄色标记相关的功能,当用户点击节点时,文本框中填充了附加到该节点的相关信息,然后我使用这种方法,如果用户单击文本框滚动它,它将不会突出显示节点并使得难以跟踪选择的节点,这样它仍然以浅灰色突出显示它不在焦点,与焦点时使用的蓝色高光相对。我可以“画”节点,但搜索结果的黄色背景会使生活变得更加复杂。
我提到这很容易吗?