画像ファイル
画像ファイル  コントロールの配列をインデクサで処理する
VB2005 コード
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'ラベルの左スパンと上スパン
Const intOffsetX As Integer = 10, intOffsetY As Integer = 10
'コントロールの高さと幅
Const intHeight As Integer = 20, intWidth As Integer = 100
'コントロールとコントロールのスパン
Const intVspan As Integer = 40, intHspan As Integer = 10

'コントロールの位置を設定
For i As Integer = 1 To 6
With Label(i)
.SetBounds(intOffsetX, intVspan * (i - 1) + _
intOffsetY, intWidth, intHeight)
.Text = "ラベル" & i.ToString
End With
'テキストボックスは2倍の幅を設定
With TextBox(i)
.SetBounds(Label(1).Left + Label(1).Width + intHspan, _
intVspan * (i - 1) + intOffsetY, intWidth * 2, intHeight)
.Text = String.Empty
End With

With Button(i)
.SetBounds(TextBox(1).Left + TextBox(1).Width + intHspan, _
intVspan * (i - 1) + intOffsetY, intWidth, intHeight)
.Text = "ボタン" & i.ToString
End With
Next

'イベントの追加
For i As Integer = 1 To 6
AddHandler Button(i).Click, AddressOf Button_Click
Next

End Sub

'引数indexに番号を受け取って、その番号が付いたLabelコントロールを返す
Private Function Label(ByVal index As Integer) As Label
Return DirectCast(Me.Controls("Label" & index.ToString), Label)
End Function

'引数indexに番号を受け取って、その番号が付いたTextBoxコントロールを返す
Private Function TextBox(ByVal index As Integer) As TextBox
Return DirectCast(Me.Controls("TextBox" & index.ToString), TextBox)
End Function

'引数indexに番号を受け取って、その番号が付いたButtonコントロールを返す
Private Function Button(ByVal index As Integer) As Button
Return DirectCast(Me.Controls("Button" & index.ToString), Button)
End Function

Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
'イベントの送り側の名前を取得
Dim senderName As String = DirectCast(sender, Button).Name

'ボタンのベース名 長さの取得に使用
Dim strBut As String = "Button"

'Buttonxxのxxを取得して数字に直している
Dim index As Integer = CInt(senderName.Substring(strBut.Length, _
senderName.Length - strBut.Length))

'取得したインデックスで各ボタンのクリックイベントを処理
Select Case index
Case 1
TextBox(1).Text = "ボタン1が押されました"
Case 2
TextBox(2).Text = "ボタン2が押されました"
Case Else
TextBox(index).Text = "ボタン" & index.ToString & "が押されました"
End Select
End Sub
End Class
画像ファイル    ←  コントロールの配列をインデクサで処理する