Actualización: noviembre 2007
Define las constantes que representan cómo se puede dibujar un control TreeView.
Ensamblado: System.Windows.Forms (en System.Windows.Forms.dll)
Public Enumeration TreeViewDrawMode
Dim instance As TreeViewDrawMode
public enum TreeViewDrawMode
public enum class TreeViewDrawMode
public enum TreeViewDrawMode
public enum TreeViewDrawMode
| Nombre de miembro | Descripción | |
|---|---|---|
| Normal | El sistema operativo ha dibujado el control TreeView. | |
| OwnerDrawText | Se dibuja manualmente la parte de la etiqueta de los nodos TreeView. El sistema operativo dibuja otros elementos de nodo, incluyendo los iconos, casillas de verificación, los signos de más y menos y las líneas que conectan los nodos. | |
| OwnerDrawAll | Se dibujan manualmente todos los elementos de un nodo TreeView, incluso los iconos, casillas de verificación, los signos de más y menos, y las líneas que conectan los nodos. |
La propiedad TreeView.DrawMode utiliza esta enumeración para indicar si los nodos o etiquetas de nodo de un control TreeView los dibuja el propietario. Para obtener más información, vea el evento TreeView.DrawNode.
En el ejemplo de código siguiente se muestra cómo personalizar un control TreeView mediante la función de dibujo del propietario. El control TreeView del ejemplo muestra etiquetas de nodo opcionales junto a las etiquetas de nodo estándar. Las etiquetas de nodo se especifican utilizando la propiedad TreeNode.Tag. El control TreeView también utiliza colores personalizados, incluido un color de resaltado personalizado.
Puede personalizar la mayoría de los colores del control TreeView estableciendo las propiedades de los colores, pero el color de resaltado de una selección no está disponible como propiedad. Además, el rectángulo de resalte de la selección predeterminado sólo se extiende alrededor de una etiqueta de nodo. Debe utilizarse la técnica de dibujo del propietario para dibujar las etiquetas de nodo así como un rectángulo de resalte personalizado suficientemente grande para incluir una etiqueta de nodo.
Para obtener el ejemplo completo, vea el tema referente a TreeView.DrawNode.
Public Sub New() ' Create and initialize the TreeView control. myTreeView = New TreeView() myTreeView.Dock = DockStyle.Fill myTreeView.BackColor = Color.Tan myTreeView.CheckBoxes = True ' Add nodes to the TreeView control. Dim node As TreeNode Dim x As Integer For x = 1 To 3 ' Add a root node to the TreeView control. node = myTreeView.Nodes.Add(String.Format("Task {0}", x)) Dim y As Integer For y = 1 To 3 ' Add a child node to the root node. node.Nodes.Add(String.Format("Subtask {0}", y)) Next y Next x myTreeView.ExpandAll() ' Add tags containing alert messages to a few nodes ' and set the node background color to highlight them. myTreeView.Nodes(1).Nodes(0).Tag = "urgent!" myTreeView.Nodes(1).Nodes(0).BackColor = Color.Yellow myTreeView.SelectedNode = myTreeView.Nodes(1).Nodes(0) myTreeView.Nodes(2).Nodes(1).Tag = "urgent!" myTreeView.Nodes(2).Nodes(1).BackColor = Color.Yellow ' Configure the TreeView control for owner-draw. myTreeView.DrawMode = TreeViewDrawMode.OwnerDrawText ' Add a handler for the MouseDown event so that a node can be ' selected by clicking the tag text as well as the node text. AddHandler myTreeView.MouseDown, AddressOf myTreeView_MouseDown ' Initialize the form and add the TreeView control to it. Me.ClientSize = New Size(292, 273) Me.Controls.Add(myTreeView) End Sub 'New
public TreeViewOwnerDraw() { // Create and initialize the TreeView control. myTreeView = new TreeView(); myTreeView.Dock = DockStyle.Fill; myTreeView.BackColor = Color.Tan; myTreeView.CheckBoxes = true; // Add nodes to the TreeView control. TreeNode node; for (int x = 1; x < 4; ++x) { // Add a root node to the TreeView control. node = myTreeView.Nodes.Add(String.Format("Task {0}", x)); for (int y = 1; y < 4; ++y) { // Add a child node to the root node. node.Nodes.Add(String.Format("Subtask {0}", y)); } } myTreeView.ExpandAll(); // Add tags containing alert messages to a few nodes // and set the node background color to highlight them. myTreeView.Nodes[1].Nodes[0].Tag = "urgent!"; myTreeView.Nodes[1].Nodes[0].BackColor = Color.Yellow; myTreeView.SelectedNode = myTreeView.Nodes[1].Nodes[0]; myTreeView.Nodes[2].Nodes[1].Tag = "urgent!"; myTreeView.Nodes[2].Nodes[1].BackColor = Color.Yellow; // Configure the TreeView control for owner-draw and add // a handler for the DrawNode event. myTreeView.DrawMode = TreeViewDrawMode.OwnerDrawText; myTreeView.DrawNode += new DrawTreeNodeEventHandler(myTreeView_DrawNode); // Add a handler for the MouseDown event so that a node can be // selected by clicking the tag text as well as the node text. myTreeView.MouseDown += new MouseEventHandler(myTreeView_MouseDown); // Initialize the form and add the TreeView control to it. this.ClientSize = new Size(292, 273); this.Controls.Add(myTreeView); }
public TreeViewOwnerDraw()
{
// Create and initialize the TreeView control.
myTreeView = new TreeView();
myTreeView.set_Dock(DockStyle.Fill);
myTreeView.set_BackColor(Color.get_Tan());
myTreeView.set_CheckBoxes(true);
// Add nodes to the TreeView control.
TreeNode node;
for (int x = 1; x < 4; ++x) {
// Add a root node to the TreeView control.
node = myTreeView.get_Nodes().Add(String.Format("Task {0}",
(Int32)x));
for (int y = 1; y < 4; ++y) {
// Add a child node to the root node.
node.get_Nodes().Add(String.Format("Subtask {0}", (Int32)y));
}
}
myTreeView.ExpandAll();
// Add tags containing alert messages to a few nodes
// and set the node background color to highlight them.
myTreeView.get_Nodes().get_Item(1).get_Nodes().get_Item(0).
set_Tag("urgent!");
myTreeView.get_Nodes().get_Item(1).get_Nodes().get_Item(0).
set_BackColor(Color.get_Yellow());
myTreeView.set_SelectedNode(myTreeView.get_Nodes().get_Item(1).
get_Nodes().get_Item(0));
myTreeView.get_Nodes().get_Item(2).get_Nodes().get_Item(1).
set_Tag("urgent!");
myTreeView.get_Nodes().get_Item(2).get_Nodes().get_Item(1).
set_BackColor(Color.get_Yellow());
// Configure the TreeView control for owner-draw and add
// a handler for the DrawNode event.
myTreeView.set_DrawMode(TreeViewDrawMode.OwnerDrawText);
myTreeView.add_DrawNode(new DrawTreeNodeEventHandler(
myTreeView_DrawNode));
// Add a handler for the MouseDown event so that a node can be
// selected by clicking the tag text as well as the node text.
myTreeView.add_MouseDown(new MouseEventHandler(myTreeView_MouseDown));
// Initialize the form and add the TreeView control to it.
this.set_ClientSize(new Size(292, 273));
this.get_Controls().Add(myTreeView);
} //TreeViewOwnerDraw
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.