コントロール配列

かつてVisual Basic 6.0にはコントロール毎にIndexプロパティが存在し、
簡単にコントロールの配列を扱うことができた。
例えば、

TextBox1(0).Text = "1"
TextBox1(1).Text = "2"

など。

が、VB.NETからIndexプロパティが無くなり簡単には使用できなくなった。
(正確に言うと互換のため残されているが)
オブジェクト指向なんだから自分で作れと言わんばかりに無くなっている。

VB.NETにも無いものはC#にも無い。
C# 2005にも配列用のコントロールは用意してあるようだけど。
(例:TextBoxArray、PictureBoxArrayなど)

で、いざコントロールを配列で使ってみようと思ったところ使い方が分からず
少し悩んでしまった。
またきっと忘れるんで覚書きに追加しておこう。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      PictureBox[] pb = new PictureBox[10];
      for (int i = 0; i < 10; i++)
      {
        pb[i] = new PictureBox();
        pb[i].Location = new Point(10*i, 10*i);
        pb[i].Size = new Size(5*(i+1), 5*(i+1));
        pb[i].BorderStyle = BorderStyle.FixedSingle;
        Controls.Add(pb[i]);
      }
    }
  }
}

実行結果
20060120

 
 
 
 
 
 
 
 


Tagged:

Leave a comment

メールアドレスが公開されることはありません。

CAPTCHA


*