ControlCollection.GetEnumerator Método
Definición
Recupera un enumerador que puede iterar por el objeto ControlCollection.Retrieves an enumerator that can iterate through the ControlCollection object.
public:
virtual System::Collections::IEnumerator ^ GetEnumerator();
public System.Collections.IEnumerator GetEnumerator ();
public virtual System.Collections.IEnumerator GetEnumerator ();
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
override this.GetEnumerator : unit -> System.Collections.IEnumerator
Public Function GetEnumerator () As IEnumerator
Public Overridable Function GetEnumerator () As IEnumerator
Devoluciones
Enumerador que se emplea para iterar por la colección.The enumerator to iterate through the collection.
Implementaciones
Ejemplos
En el ejemplo de código siguiente se crea un método que enumera la ControlCollection colección de un Button control, myButton
.The following code example creates a method that enumerates through the ControlCollection collection of a Button control, myButton
. Cuando se crea el enumerador, IsSynchronized se comprueba la propiedad para ver si la operación es segura para subprocesos y, en caso contrario, se SyncRoot utiliza la propiedad para obtener un objeto con el fin de que la operación sea segura para subprocesos.When the enumerator is created, the IsSynchronized property is checked to see if the operation is thread safe, and if it is not, the SyncRoot property is used to obtain an object to make the operation thread safe. Cuando se completa la enumeración, el valor de la IsReadOnly propiedad se escribe como la Text propiedad de un Label control en la página contenedora.When the enumeration is completed, the value of the IsReadOnly property is written as the Text property of a Label control on the containing page.
// Create a method that enuberates through a
// button//s ControlCollection in a thread-safe manner.
public void ListControlCollection(object sender, EventArgs e)
{
IEnumerator myEnumerator = myButton.Controls.GetEnumerator();
// Check the IsSynchronized property. If False,
// use the SyncRoot method to get an object that
// allows the enumeration of all controls to be
// thread safe.
if (myButton.Controls.IsSynchronized == false)
{
lock (myButton.Controls.SyncRoot)
{
while (myEnumerator.MoveNext())
{
Object myObject = myEnumerator.Current;
LiteralControl childControl = (LiteralControl)myEnumerator.Current;
Response.Write("<b><br /> This is the text of the child Control </b>: " +
childControl.Text);
}
msgReadOnly.Text = myButton.Controls.IsReadOnly.ToString();
}
}
}
' Create a method that enuberates through a
' button's ControlCollection in a thread-safe manner.
Public Sub ListControlCollection(sender As Object, e As EventArgs)
Dim myEnumerator As IEnumerator = myButton.Controls.GetEnumerator()
' Check the IsSynchronized property. If False,
' use the SyncRoot method to get an object that
' allows the enumeration of all controls to be
' thread safe.
If myButton.Controls.IsSynchronized = False Then
SyncLock myButton.Controls.SyncRoot
While (myEnumerator.MoveNext())
Dim myObject As Object = myEnumerator.Current
Dim childControl As LiteralControl = CType(myEnumerator.Current, LiteralControl)
Response.Write("<b><br /> This is the text of the child Control </b>: " & _
childControl.Text)
End While
msgReadOnly.Text = myButton.Controls.IsReadOnly.ToString()
End SyncLock
End If
End Sub