je voulais créer un TreeView personnalisé donc je hérité de la classe TreeView et créé 'CustomTreeView' classeTreeView problème de nœud sélectionné
il i implémenté concept de multiselect ..
pour faire le noeud tel que sélectionné,
node.BackColor = SystemColors.Highlight;
node.ForeColor = SystemColors.HighlightText;
i utilisé ces lignes ...
mais le problème est quand je fais le contrôle comme désactivé (ie permis = false),
le nœud sélectionné devient invisible ..
toute autre solution pour faire un nœud sélectionné ??? sans ce problème activé?
EDIT: Voici la fonction complète qui est appelée lorsqu'un nœud est sélectionné:
private void ToggleNode(TreeNode node, bool bSelectNode)
{
if (bSelectNode)
{
m_SelectedNode = node;
if (!m_SelectedNodes.Contains(node))
m_SelectedNodes.Add(node);
node.BackColor = SystemColors.Highlight;
node.ForeColor = SystemColors.HighlightText;
}
else
{
m_SelectedNodes.Remove(node);
node.BackColor = this.BackColor;
node.ForeColor = this.ForeColor;
}
}
Pouvez-vous nous montrer une partie de votre code? De la façon dont je comprends votre description, je ne peux pas reproduire ce problème. Un contrôle TreeView désactivé respecte toujours les propriétés personnalisées 'BackColor' et' ForeColor' définies sur des nœuds individuels. –
ToggleNode vide privé (noeud TreeNode, bool bSelectNode) \t \t { \t \t \t if (bSelectNode) \t \t \t { \t \t \t \t m_SelectedNode = noeud; \t \t \t \t si \t \t \t \t \t m_SelectedNodes.Add (nœud) (m_SelectedNodes.Contains (noeud)!); \t \t \t \t node.BackColor = SystemColors.Highlight; \t \t \t \t node.ForeColor = SystemColors.HighlightText; \t \t \t} \t \t \t autre \t \t \t { \t \t \t \t m_SelectedNodes.Remove (noeud); \t \t \t \t node.BackColor = this.BackColor; \t \t \t \t node.ForeColor = this.Couleur de premier plan; \t \t \t} \t \t} – curiosity
est fonction sera appelée lorsque le nœud est sélectionné – curiosity