TreeNodeCollection.GetEnumerator Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve un enumerador que puede utilizarse para recorrer en iteración un objeto TreeNodeCollection.
public:
virtual System::Collections::IEnumerator ^ GetEnumerator();
public System.Collections.IEnumerator GetEnumerator ();
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
override this.GetEnumerator : unit -> System.Collections.IEnumerator
Public Function GetEnumerator () As IEnumerator
Devoluciones
Un enumerador que se puede utilizar para recorrer en iteración la colección TreeNodeCollection.
Implementaciones
Ejemplos
En el ejemplo siguiente se muestra cómo usar el GetEnumerator método para crear un enumerador que contenga nodos raíz del TreeView control.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Page_Load(Object sender, EventArgs e)
{
// If the TreeView control contains any root nodes, display the
// text value of each node.
if (LinksTreeView.Nodes.Count > 0)
{
// Use the GetEnumerator method to create an enumerator
// that contains the root node data.
IEnumerator nodeEnumerator = LinksTreeView.Nodes.GetEnumerator();
// Iterate through the enumerator to display the root nodes.
while (nodeEnumerator.MoveNext())
{
Message.Text += ((TreeNode)(nodeEnumerator.Current)).Text + "<br />";
}
}
else
{
Message.Text = "The TreeView control does not have any nodes.";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TreeNodeCollection GetEnumerator Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TreeNodeCollection GetEnumerator Example</h3>
<asp:TreeView id="LinksTreeView"
Font-Names= "Arial"
ForeColor="Blue"
runat="server">
<LevelStyles>
<asp:TreeNodeStyle ChildNodesPadding="10"
Font-Bold="true"
Font-Size="12pt"
ForeColor="DarkGreen"/>
<asp:TreeNodeStyle ChildNodesPadding="5"
Font-Bold="true"
Font-Size="10pt"/>
<asp:TreeNodeStyle ChildNodesPadding="5"
Font-UnderLine="true"
Font-Size="10pt"/>
<asp:TreeNodeStyle ChildNodesPadding="10"
Font-Size="8pt"/>
</LevelStyles>
<Nodes>
<asp:TreeNode Text="Table of Contents"
Expanded="true">
<asp:TreeNode Text="Chapter One">
<asp:TreeNode Text="Section 1.0">
<asp:TreeNode Text="Topic 1.0.1"/>
<asp:TreeNode Text="Topic 1.0.2"/>
<asp:TreeNode Text="Topic 1.0.3"/>
</asp:TreeNode>
<asp:TreeNode Text="Section 1.1">
<asp:TreeNode Text="Topic 1.1.1"/>
<asp:TreeNode Text="Topic 1.1.2"/>
<asp:TreeNode Text="Topic 1.1.3"/>
<asp:TreeNode Text="Topic 1.1.4"/>
</asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="Chapter Two">
<asp:TreeNode Text="Section 2.0">
<asp:TreeNode Text="Topic 2.0.1">
<asp:TreeNode Text="Subtopic 1"/>
<asp:TreeNode Text="Subtopic 2"/>
</asp:TreeNode>
<asp:TreeNode Text="Topic 2.0.2"/>
</asp:TreeNode>
</asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="Appendix A" />
<asp:TreeNode Text="Appendix B" />
<asp:TreeNode Text="Appendix C" />
</Nodes>
</asp:TreeView>
<br /><br />
<asp:Label id="Message"
runat="server"/>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
' If the TreeView control contains any root nodes, display the
' text value of each node.
If LinksTreeView.Nodes.Count > 0 Then
' Use the GetEnumerator method to create an enumerator
' that contains the root node data.
Dim nodeEnumerator As IEnumerator = LinksTreeView.Nodes.GetEnumerator()
' Iterate through the enumerator to display the root nodes.
While nodeEnumerator.MoveNext()
Message.Text &= (CType(nodeEnumerator.Current, TreeNode)).Text & "<br />"
End While
Else
Message.Text = "The TreeView control does not have any nodes."
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TreeNodeCollection GetEnumerator Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TreeNodeCollection GetEnumerator Example</h3>
<asp:TreeView id="LinksTreeView"
Font-Names= "Arial"
ForeColor="Blue"
runat="server">
<LevelStyles>
<asp:TreeNodeStyle ChildNodesPadding="10"
Font-Bold="true"
Font-Size="12pt"
ForeColor="DarkGreen"/>
<asp:TreeNodeStyle ChildNodesPadding="5"
Font-Bold="true"
Font-Size="10pt"/>
<asp:TreeNodeStyle ChildNodesPadding="5"
Font-UnderLine="true"
Font-Size="10pt"/>
<asp:TreeNodeStyle ChildNodesPadding="10"
Font-Size="8pt"/>
</LevelStyles>
<Nodes>
<asp:TreeNode Text="Table of Contents"
Expanded="true">
<asp:TreeNode Text="Chapter One">
<asp:TreeNode Text="Section 1.0">
<asp:TreeNode Text="Topic 1.0.1"/>
<asp:TreeNode Text="Topic 1.0.2"/>
<asp:TreeNode Text="Topic 1.0.3"/>
</asp:TreeNode>
<asp:TreeNode Text="Section 1.1">
<asp:TreeNode Text="Topic 1.1.1"/>
<asp:TreeNode Text="Topic 1.1.2"/>
<asp:TreeNode Text="Topic 1.1.3"/>
<asp:TreeNode Text="Topic 1.1.4"/>
</asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="Chapter Two">
<asp:TreeNode Text="Section 2.0">
<asp:TreeNode Text="Topic 2.0.1">
<asp:TreeNode Text="Subtopic 1"/>
<asp:TreeNode Text="Subtopic 2"/>
</asp:TreeNode>
<asp:TreeNode Text="Topic 2.0.2"/>
</asp:TreeNode>
</asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="Appendix A" />
<asp:TreeNode Text="Appendix B" />
<asp:TreeNode Text="Appendix C" />
</Nodes>
</asp:TreeView>
<br /><br />
<asp:Label id="Message"
runat="server"/>
</form>
</body>
</html>
Comentarios
Use el GetEnumerator método para crear un enumerador que se pueda iterar fácilmente para obtener cada elemento de TreeNodeCollection. Para obtener el elemento al que se apunta actualmente en el enumerador, use la IEnumerator.Current propiedad . Use el IEnumerator.MoveNext método para pasar al siguiente elemento. Si necesita volver al enumerador al principio de la colección, use el IEnumerator.Reset método .
Nota
Después de crear un enumerador o usar el IEnumerator.Reset método , debe llamar al IEnumerator.MoveNext método . De lo contrario, el elemento representado por la IEnumerator.Current propiedad no está definido.
Como alternativa, también puede usar el CopyTo método para crear un System.Array objeto que se pueda usar para tener acceso a los elementos de la colección. Otra alternativa es usar una foreach
estructura o For Each
para recorrer en iteración la colección.