ControlCollection.GetEnumerator メソッド
ControlCollection オブジェクトを反復処理できる列挙子を取得します。
名前空間: System.Web.UI
アセンブリ: System.Web (system.web.dll 内)
構文
'宣言
Public Overridable Function GetEnumerator As IEnumerator
'使用
Dim instance As ControlCollection
Dim returnValue As IEnumerator
returnValue = instance.GetEnumerator
public virtual IEnumerator GetEnumerator ()
public:
virtual IEnumerator^ GetEnumerator ()
public IEnumerator GetEnumerator ()
public function GetEnumerator () : IEnumerator
適用できません。
戻り値
コレクションを反復処理する列挙子。
使用例
Button コントロール (myButton
) の ControlCollection コレクション内を列挙するメソッドを作成するコード例を次に示します。列挙子が作成されると、操作がスレッド セーフかどうかを確認するために IsSynchronized プロパティがチェックされます。スレッド セーフでない場合は、SyncRoot プロパティを使用して、操作をスレッド セーフにするためのオブジェクトが取得されます。列挙処理が完了すると、IsReadOnly プロパティの値が、ページの Label コントロールの Text プロパティの値として書き込まれます。
' 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
// 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();
}
}
}
プラットフォーム
Windows 98,Windows Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition
Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。
バージョン情報
.NET Framework
サポート対象 : 3.0,2.0,1.1,1.0
参照
関連項目
ControlCollection クラス
ControlCollection メンバ
System.Web.UI 名前空間
IEnumerator
Control.Controls プロパティ