2010-12-07 5 views
0

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; 
    } 
} 
+0

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. –

+0

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

+0

est fonction sera appelée lorsque le nœud est sélectionné – curiosity

Répondre

1

Je soupçonne que c'est parce Highlight et HighlightText sont suffisamment proches que vous obtenez cet effet avec la gradation .

Essayez le rouge et le bleu. Est-ce qu'il disparaît encore?

Questions connexes