Leer en inglés

Compartir a través de


TreeNodeStates Enumeración

Definición

Define constantes que representan los posibles estados de TreeNode.

Esta enumeración admite una combinación bit a bit de sus valores de miembro.

C#
[System.Flags]
public enum TreeNodeStates
Herencia
TreeNodeStates
Atributos

Campos

Nombre Valor Description
Checked 8

El nodo está activado.

Default 32

El nodo está en su estado predeterminado.

Focused 16

El nodo tiene foco.

Grayed 2

El nodo está deshabilitado.

Hot 64

El nodo está caliente. Este estado aparece cuando la propiedad HotTracking se establece en true y el puntero del mouse está encima del nodo.

Indeterminate 256

Nodo en un estado indeterminado.

Marked 128

El nodo está marcado.

Selected 1

El nodo está seleccionado.

ShowKeyboardCues 512

El nodo debe indicar un método abreviado de teclado.

Ejemplos

En el ejemplo siguiente se muestra cómo personalizar un TreeView control mediante el dibujo del propietario. El TreeView control del ejemplo muestra etiquetas de nodo opcionales junto con las etiquetas de nodo normales. Las etiquetas de nodo se especifican mediante la TreeNode.Tag propiedad . El TreeView control también usa colores personalizados, incluido un color de resaltado personalizado.

Puede personalizar la mayoría de los TreeView colores estableciendo propiedades de color, pero el color de resaltado de selección no está disponible como propiedad. Además, el rectángulo de resaltado de selección predeterminado solo se extiende alrededor de una etiqueta de nodo. El dibujo del propietario debe usarse para dibujar las etiquetas de nodo y para dibujar un rectángulo de resaltado personalizado lo suficientemente grande como para incluir una etiqueta de nodo.

En el ejemplo, un controlador para el TreeView.DrawNode evento dibuja nodos no seleccionados mediante una llamada a métodos de la DrawTreeNodeEventArgs clase . Estos métodos proporcionan la apariencia predeterminada para TreeView los elementos que no necesitan personalización. El controlador dibuja manualmente las etiquetas de nodo y el resaltado de selección personalizado.

Para obtener el ejemplo completo, consulte el tema de TreeView.DrawNode referencia.

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);
        }
    }
}

Comentarios

Esta enumeración la usa la State propiedad de la DrawTreeNodeEventArgs clase . Para obtener más información, vea el evento TreeView.DrawNode.

Se aplica a

Producto Versiones
.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

Consulte también