画像ファイル
画像ファイル  コントロールの配列をインデクサで処理する
C# コード
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace indexerC
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
SetControl();
}


private void SetControl()
{
//ラベルの左スパンと上スパン
const int intOffsetX = 10;
const int intOffsetY = 10;
//コントロールの高さと幅
const int intHeight = 20;
const int intWidth = 100;
//コントロールとコントロールのスパン
const int intVspan = 40 ;
const int intHspan = 10;

//コントロールの位置を設定
for (int i = 1 ; i<7; i++)
{
Label(i).SetBounds(intOffsetX, intVspan * (i - 1) +
intOffsetY, intWidth, intHeight);
Label(i).Text = "ラベル" + i.ToString();

//テキストボックスは2倍の幅を設定
TextBox(i).SetBounds(Label(1).Left + Label(1).Width + intHspan,
intVspan * (i - 1) + intOffsetY, intWidth * 2, intHeight);
TextBox(i).Text = String.Empty;
Button(i).SetBounds(TextBox(1).Left + TextBox(1).Width + intHspan,
intVspan * (i - 1) + intOffsetY, intWidth, intHeight);
Button(i).Text = "ボタン" + i.ToString();

}

//イベントの追加
for (int i = 1 ;i < 7; i++)
{
Button(i).Click += Button_Click;
}

}

//引数indexに番号を受け取って、その番号が付いたLabelコントロールを返す
private Label Label(int index )
{
return (Label)(this.Controls["Label" + index.ToString()]);
}

//引数indexに番号を受け取って、その番号が付いたTextBoxコントロールを返す
private TextBox TextBox(int index)
{
return (TextBox)(this.Controls["TextBox" + index.ToString()]);
}

//引数indexに番号を受け取って、その番号が付いたButtonコントロールを返す
private Button Button(int index)
{
return (Button)(this.Controls["Button" + index.ToString()]);
}

private void Button_Click(System.Object sender ,System.EventArgs e )
{
//イベントの送り側の名前を取得
string senderName = ((Button)(sender)).Name;

//ボタンのベース名 長さの取得に使用
string strBut = "Button";

//Buttonxxのxxを取得して数字に直している
int index = int.Parse(senderName.Substring(strBut.Length,
senderName.Length - strBut.Length));

//取得したインデックスで各ボタンのクリックイベントを処理
switch(index)
{
case 1:
TextBox(1).Text = "ボタン1が押されました";
break;
case 2:
TextBox(2).Text = "ボタン2が押されました";
break;
default:
TextBox(index).Text = "ボタン" + index.ToString() +"が押されました";
break;
}
}

}
}
画像ファイル    ←  コントロールの配列をインデクサで処理する