Lire en anglais

Partager via


TreeNodeStates Énumération

Définition

Définit une constante représentant les états possibles de TreeNode.

Cette énumération prend en charge une combinaison au niveau du bit de ses valeurs membres.

C#
[System.Flags]
public enum TreeNodeStates
Héritage
TreeNodeStates
Attributs

Champs

Nom Valeur Description
Checked 8

Le nœud est activé.

Default 32

Le nœud est dans son état par défaut.

Focused 16

Le nœud a le focus.

Grayed 2

Le nœud est désactivé.

Hot 64

Le nœud est réactif. Cet état se produit lorsque la propriété HotTracking a la valeur true et que le pointeur de la souris se trouve au-dessus du nœud.

Indeterminate 256

Nœud dans un état indéterminé.

Marked 128

Le nœud est marqué.

Selected 1

Le nœud est sélectionné.

ShowKeyboardCues 512

Le nœud doit indiquer un raccourci clavier.

Exemples

L’exemple suivant montre comment personnaliser un TreeView contrôle à l’aide du dessin propriétaire. Le TreeView contrôle de l’exemple affiche des balises de nœud facultatives à côté des étiquettes de nœud normales. Les balises de nœud sont spécifiées à l’aide de la TreeNode.Tag propriété . Le TreeView contrôle utilise également des couleurs personnalisées, y compris une couleur de surbrillance personnalisée.

Vous pouvez personnaliser la plupart des couleurs en définissant des TreeView propriétés de couleur, mais la couleur de surbrillance de sélection n’est pas disponible en tant que propriété. En outre, le rectangle de sélection par défaut s’étend uniquement autour d’une étiquette de nœud. Le dessin propriétaire doit être utilisé pour dessiner les balises de nœud et dessiner un rectangle de surbrillance personnalisé suffisamment grand pour inclure une balise de nœud.

Dans l’exemple, un gestionnaire pour l’événement TreeView.DrawNode dessine des nœuds non sélectionnés en appelant des méthodes de la DrawTreeNodeEventArgs classe . Ces méthodes fournissent l’apparence par défaut des TreeView éléments qui n’ont pas besoin de personnalisation. Le gestionnaire dessine manuellement les balises de nœud et la sélection personnalisée en surbrillance.

Pour obtenir l’exemple complet, consultez la rubrique de TreeView.DrawNode référence.

C#
// Draws a node.
private void myTreeView_DrawNode(
    object sender, DrawTreeNodeEventArgs e)
{
    // Draw the background and node text for a selected node.
    if ((e.State & TreeNodeStates.Selected) != 0)
    {
        // Draw the background of the selected node. The NodeBounds
        // method makes the highlight rectangle large enough to
        // include the text of a node tag, if one is present.
        e.Graphics.FillRectangle(Brushes.Green, NodeBounds(e.Node));

        // Retrieve the node font. If the node font has not been set,
        // use the TreeView font.
        Font nodeFont = e.Node.NodeFont;
        if (nodeFont == null) nodeFont = ((TreeView)sender).Font;

        // Draw the node text.
        e.Graphics.DrawString(e.Node.Text, nodeFont, Brushes.White,
            Rectangle.Inflate(e.Bounds, 2, 0));
    }

    // Use the default background and node text.
    else 
    {
        e.DrawDefault = true;
    }

    // If a node tag is present, draw its string representation 
    // to the right of the label text.
    if (e.Node.Tag != null)
    {
        e.Graphics.DrawString(e.Node.Tag.ToString(), tagFont,
            Brushes.Yellow, e.Bounds.Right + 2, e.Bounds.Top);
    }

    // If the node has focus, draw the focus rectangle large, making
    // it large enough to include the text of the node tag, if present.
    if ((e.State & TreeNodeStates.Focused) != 0)
    {
        using (Pen focusPen = new Pen(Color.Black))
        {
            focusPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;
            Rectangle focusBounds = NodeBounds(e.Node);
            focusBounds.Size = new Size(focusBounds.Width - 1, 
            focusBounds.Height - 1);
            e.Graphics.DrawRectangle(focusPen, focusBounds);
        }
    }
}

Remarques

Cette énumération est utilisée par la State propriété de la DrawTreeNodeEventArgs classe . Pour plus d'informations, consultez l'événement TreeView.DrawNode.

S’applique à

Produit Versions
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Voir aussi