El TreeNode
en sí mismo no tiene ninguna propiedad Enabled
, por lo que deberá encontrar algún medio para rastrear ese estado. Una forma de hacerlo es crear una nueva clase que herede TreeNode
y que tenga una propiedad Enabled
. Otra forma es mantener una lista de nodos de árbol desactivados.
Una vez hecho esto, puede usar la propiedad ForeColor
del TreeNode
para que aparezca en gris (por ejemplo, usando el valor SystemColors.GrayText
).
Finalmente, puede utilizar el evento BeforeSelect
para evaluar si está bien que el usuario seleccione un nodo en particular, y usar la propiedad Cancel
de los argumentos del evento en ese caso para evitar seleccionar si ese nodo está desactivado:
private void TreeView_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
e.Cancel = !NodeIsEnabled(e.Node);
}
TreeNodeSelectAction está en System.Web.UI.WebControls espacio de nombres. La pregunta es acerca de Windows Forms. Aclamaciones – liquide