TreeNode
не имеет никакого значения Enabled
, поэтому вам нужно будет найти способ отслеживания этого состояния. Один из способов сделать это - создать новый класс, который наследует TreeNode
и который имеет свойство Enabled
. Другой способ - поддерживать список отключенных узлов дерева.
Как только это будет сделано, вы можете использовать свойство ForeColor
для TreeNode
, чтобы оно выглядело серым (например, с использованием значения SystemColors.GrayText
).
Наконец, вы можете использовать BeforeSelect
событие, чтобы оценить, является ли это хорошо для пользователя, чтобы выбрать конкретный узел, а также использовать Cancel
свойство аргументов событий в этом случае, чтобы предотвратить выбор, если этот узел отключен:
private void TreeView_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
e.Cancel = !NodeIsEnabled(e.Node);
}
TreeNodeSelectAction находится в System.Web.UI.WebControls пространстве имен. Вопрос о Windows Forms. ура – liquide