He cambiado Treeview.HideSelection = false; Pero, ¿cómo puedo asegurar que cuando se pierda el foco el objeto seleccionado siga siendo el original seleccionado?C# cómo me aseguro de que el nodo seleccionado permanezca resaltado cuando se perdió el foco
EDIT:
tengo una vista de lista en un formulario que contiene una lista de eventos del proceso. Junto con Treeview en la misma forma hay una serie de selecciones que el usuario completa para clasificar el evento en la vista de lista. Sin embargo, cuando el usuario realiza una selección en uno de los controles de clasificación, el elemento de vista en árbol seleccionado resaltado en azul cambia a un color gris. Esperaba encontrar la propiedad que define este color para que sea del mismo color azul.
Cualquier sugerencia.
Actualización:
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);
}
}
¿Estás hablando de enfoque a toda la aplicación o solo a ese campo específico? Además, ¿debería permanecer seleccionado el elemento o debería eliminarse? –
Sospecho que estás tratando de resolver algún otro problema, y jugar con el color de selección es tu idea de cómo resolverlo. Creo que es una mala idea. Pregunte sobre su problema original en su lugar. Seguramente hay una mejor solución. –