Cuando selecciono un nodo en la vista de árbol, se resalta y muestro datos basados en ese nodo a continuación. Cuando selecciono otro control (la vista de árbol pierde el foco) ya no está resaltado. ¿Cómo lo mantengo resaltado después de perder el foco? Mientras hago una búsqueda, no puedo decir qué nodo está seleccionado ya que debo mantener el foco en el cuadro de texto (para que el usuario pueda escribir más texto).Control TreeView en C#, seleccione() y enfoque
8
A
Respuesta
10
Hay que establecer la propiedad HideSelection en false - por lo que verá la selección, Altough el control TreeView perdido el foco
3
acabo con este problema y así es como me dirigí a él: Se ha cambiado la propiedad DrawMode a TreeViewDrawMode.OwnerDrawText
y registrado a eventos DrawNode
private void MyTreeGridview_DrawNode(object sender, DrawTreeNodeEventArgs e)
{
if ((e.State == TreeNodeStates.Selected) && (!MyTreeGridview.Focused))
{
Font font = e.Node.NodeFont ?? e.Node.TreeView.Font;
Color fore = e.Node.ForeColor;
if (fore == Color.Empty)fore = e.Node.TreeView.ForeColor;
fore = SystemColors.HighlightText;
Color highlightColor = SystemColors.Highlight;
e.Graphics.FillRectangle(new SolidBrush(highlightColor), e.Bounds);
ControlPaint.DrawFocusRectangle(e.Graphics, e.Bounds, fore, highlightColor);
TextRenderer.DrawText(e.Graphics, e.Node.Text, font, e.Bounds, fore, highlightColor, TextFormatFlags.GlyphOverhangPadding);
}
else
{
e.DrawDefault = true;
}
}
0
Si el color de resaltado no es lo suficientemente brillante para su gusto cuando HideSelection se establece en False y TreeView enfoque perdido:
Asegúrese de que su camiseta reeView's HideSelection se establece en True (valor predeterminado).
Entonces el mango del TreeView entrar y salir de eventos como:
void myTreeView_Leave(object sender, EventArgs e)
{
if((sender as TreeView).SelectedNode != null)
(sender as System.Windows.Forms.TreeView).SelectedNode.BackColor = Color.Red; //your highlight color
}
void myTreeView_Enter(object sender, EventArgs e)
{
if((sender as TreeView).SelectedNode != null)
(sender as TreeView).SelectedNode.BackColor = (sender as TreeView).BackColor;
}
Cuestiones relacionadas
- 1. ¿Pueden los datos vincular un control TreeView?
- 2. Selección múltiple en TreeView
- 3. C# Intrincado Treeview Design
- 4. WPF ControlTemplate para desplazarse TreeView Control
- 5. Arrastrar y soltar en Treeview
- 6. Deshabilitar SelectedImageIndex en Treeview
- 7. Enumerar todos los nodos secundarios de un nodo principal en un control treeview en Visual C#
- 8. WPF: personalizado + - en TreeView
- 9. Sugerencias para la construcción de un control TreeView en Android
- 10. seleccione C y el valor gamma
- 11. ASP.NET TreeView y selección del nodo seleccionado
- 12. Configuración Enfoque en elementos nuevos en Elementos Control
- 13. Diferencia entre enfoque/enfoque y enfoque/desenfoque, con el ejemplo
- 14. C# Arrastrar y soltar desde listbox a treeview
- 15. TreeView recursivo en ASP.NET
- 16. Crear un control híbrido WPF (TreeView + DataGrid = DataTreeGrid)
- 17. Seleccione un elemento en ListBox Control (WinForm & C#) en MouseDown Evento
- 18. IQueryable C# Seleccione
- 19. Carga diferida de TreeView en .NET
- 20. nodo no seleccionable en TreeView
- 21. .NET TreeView no mostrará imágenes
- 22. Configuración del enfoque en un control dentro de una plantilla de control (Parte 2)
- 23. HierarchicalDataTemplates en un TreeView
- 24. Python equivalente a C# .Seleccione?
- 25. Agregando las casillas de verificación en el TREEVIEW en C#
- 26. Sistema de archivos TreeView
- 27. Enfoque de configuración con ASP.NET AJAX Control Toolkit
- 28. ingeniería inversa C++ - mejores herramientas y el enfoque
- 29. Android Treeview
- 30. agregando nodos secundarios en treeview
Luché con el mismo problema 3 días antes ... – bernhardrusch
debo añadir que en realidad hay 3 clases de TreeView en C#: WinForms, ASP .NET y WPF. Solo el control WinForms tiene la propiedad HideSelection. – wigy
Esto me deja preguntándome por qué el diseñador de Visual Studio asigna 'true' como el valor predeterminado de la propiedad' HideSelection'. Creo que en la mayoría de los casos de uso sería preferible ocultar *** no *** el nodo seleccionado actualmente. – DavidRR